2012-02-29 28 views
0

Androidアプリのクラッシュ - ClassNotFoundExceptionが

IDEAは選択の私の武器です:)これは、数日間、私は怒っ運転されています。レイアウトを調整するという些細な変更(または私が思った)の編集セッション中に、ボタンを数ピクセル左に並べるなどしてプロジェクトをコンパイルして実行しました。私は、アプリケーションが起動すると、ClassNotFoundExceptionを取得しました。 java.lang.Bootloaderによってスローされます。私はブートローダーへの呼び出しにブレークポイントを設定し、問題のクラスが私の主なアプリケーションクラスであることを知ることができます。ここではそれがどのように見えるかです:

public class Rands extends Application{ 

    public static SharedPreferences preferences; 

    private static ArrayList<Favourite> favourites; 

    private static Rands instance; 

    public Rands(){ 
     instance = this; 
    } 

とマニフェストで:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
     package="rands.mycompany.com" 
     android:installLocation="preferExternal" 
     android:versionCode="8" 
     android:versionName="0.8"> 
    <uses-sdk android:minSdkVersion="8" /> 

    <uses-permission android:name="android.permission.VIBRATE" /> 

    <application android:name="rands.mycompany.com.Rands" 
       android:icon="@drawable/icon" 
      android:label="@string/app_name"> 

    <activity android:name="rands.mycompany.com.RandsMainActivity" 
       android:theme="@android:style/Theme.Translucent.NoTitleBar" 
       android:label="@string/app_name"> 

     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 

    </activity> 

    <activity android:name="rands.mycompany.com.MainMenuActivity" 
       android:theme="@android:style/Theme.Translucent.NoTitleBar" 
       android:label="MainMenuActivity"/> 

物事がファンキー取得する場所です。 logcatには関連性はありません。私はアプリをコピーして、インストールして起動し、私は例外が表示されます。例外は、アプリケーションクラスのコンストラクタが呼び出される前に発生します。私はEclipseでプロジェクトを読み込む場合、それは正常に動作します。私はIDEAに戻ってロードし、例外が発生します。私は2台の電話機、2.3のDesire、2.2のTmobile Pulse(Huawei)を持っています。電話機とエミュレータの両方で発生します。 IDEの外で(つまりランチャーから)アプリを実行すると正常に動作します。

私はこれらの仮定を行います。

  1. logcatで何もないとして、それはプロジェクトがEclipseで正常に動作しますように、私は私のマニフェストとアプリケーションクラスであることを仮定しているプラ​​ットフォームのバグ
  2. のようなにおい良い。

私も

<application android:name=".Rands" 

どれでも手がかりを試してみましたか?

乾杯

+0

あなた持つアプリケーションアンドロイド:名= "rands.mycompany.com.Rands" と活動アンドロイド:名= "rands.mycompany.com.Rands"?どうやって? –

+0

本当に問題ではない@appserv。 私は更新を提案し、きれいに再構築し、閉じるとeclipseを再起動します。電話からアプリを削除してもう一度お試しください。 – Warpzit

+0

申し訳ありませんが、それはタイプミスでした。機密保持のためにアプリ名と会社名を手動で変更しました(私は他の誰かのために働いています)。投稿を編集しました。 – Simon

答えて

1

Eclipseで私のプロジェクトを終え、この奇妙な問題で別の仕事に戻りました。

私は理由は分かりませんが、既存のソースから新しいプロジェクトを作成することはすぐにできました。

プロジェクトフォルダを自分のワークスペースから移動し、srcフォルダとresフォルダ(アセットなし)を除くすべてを削除し、マニフェストは既存のソースから新しいプロジェクトを作成しました。

囲碁フィギュア...

+0

お返事ありがとう、Simon - 私は同じ問題を抱えていました。私はEclipseからアプリケーションをうまく動かすことができましたが、私がAPKを作成した場合、それは状態でクラッシュしました。私は自分のコードをチェックし、新しい作業コピーをチェックアウトし、それを新しいプロジェクトとしてインポートし、再び作業していました。 –

+0

それはあなたを助けてうれしいよ、うれしい。おそらくADTのいくつかのファンク。 – Simon

0

あなたは既にコードがmenifestのために働くの下ので、アクティビティタグでそれを再宣言していないmenifestタグにパッケージ名を指定しています。

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
     package="rands.mycompany.com" 
     android:installLocation="preferExternal" 
     android:versionCode="8" 
     android:versionName="0.8"> 
    <uses-sdk android:minSdkVersion="8" /> 

    <uses-permission android:name="android.permission.VIBRATE" /> 

    <application android:name="rands.mycompany.com.Rands" 
       android:icon="@drawable/icon" 
      android:label="@string/app_name"> 

    <activity android:name=".Rands" 
       android:theme="@android:style/Theme.Translucent.NoTitleBar" 
       android:label="@string/app_name"> 

     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 

    </activity> 

    <activity android:name=".MainMenuActivity" 
       android:theme="@android:style/Theme.Translucent.NoTitleBar" 
       android:label="MainMenuActivity"/> 
+0

私が私の質問で言ったように、私はそれを試みました。変わりはない。 – Simon

0

アプリケーションと活動オブジェクトは、両方の「rands.mycompany.com.Rands」と命名されている、多分それが問題ですか?

+0

申し訳ありませんが、私の投稿に誤植。今修正されました。ありがとう、 – Simon

関連する問題