2012-02-22 29 views
9

私はEclipseを通して再インストールするたびに次の例外が発生します。 現在フォアグラウンドにあるアプリを再インストールするたびに発生します。インストール時にAndroidアプリがクラッシュする

Eclipseで実行中のアプリケーションのアンインストールが発生するため、このエラーは開発中に発生することが予想されます。

ユーザーの携帯電話でこのエラーが発生したことがありますか?

これは私がICSでGalaxy Nexusに切り替えたときに起こったことです。

02-22 11:31:07.098: E/AndroidRuntime(479): FATAL EXCEPTION: main 
02-22 11:31:07.098: E/AndroidRuntime(479): java.lang.RuntimeException: Unable to instantiate application android.app.Application: java.lang.NullPointerException 
02-22 11:31:07.098: E/AndroidRuntime(479): at android.app.LoadedApk.makeApplication(LoadedApk.java:466) 
02-22 11:31:07.098: E/AndroidRuntime(479): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3260) 
02-22 11:31:07.098: E/AndroidRuntime(479): at android.app.ActivityThread.access$2200(ActivityThread.java:117) 
02-22 11:31:07.098: E/AndroidRuntime(479): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:969) 
02-22 11:31:07.098: E/AndroidRuntime(479): at android.os.Handler.dispatchMessage(Handler.java:99) 
02-22 11:31:07.098: E/AndroidRuntime(479): at android.os.Looper.loop(Looper.java:123) 
02-22 11:31:07.098: E/AndroidRuntime(479): at android.app.ActivityThread.main(ActivityThread.java:3683) 
02-22 11:31:07.098: E/AndroidRuntime(479): at java.lang.reflect.Method.invokeNative(Native Method) 
02-22 11:31:07.098: E/AndroidRuntime(479): at java.lang.reflect.Method.invoke(Method.java:507) 
02-22 11:31:07.098: E/AndroidRuntime(479): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
02-22 11:31:07.098: E/AndroidRuntime(479): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
02-22 11:31:07.098: E/AndroidRuntime(479): at dalvik.system.NativeStart.main(Native Method) 
02-22 11:31:07.098: E/AndroidRuntime(479): Caused by: java.lang.NullPointerException 
02-22 11:31:07.098: E/AndroidRuntime(479): at android.app.LoadedApk.initializeJavaContextClassLoader(LoadedApk.java:346) 
02-22 11:31:07.098: E/AndroidRuntime(479): at android.app.LoadedApk.getClassLoader(LoadedApk.java:291) 
02-22 11:31:07.098: E/AndroidRuntime(479): at android.app.LoadedApk.makeApplication(LoadedApk.java:458) 
02-22 11:31:07.098: E/AndroidRuntime(479): ... 11 more 

私のアプリケーションに関連するものは見つかりませんでした。しかし、まだそれはクラッシュしています。

これの理由を教えてもらえますか?これはGalaxy NexusのIce Cream Sandwichのバグですか?

+5

コードをアップロードしてください。 – Android

+1

NPが1つあります。 –

+0

なぜこれを下降させるかは、ログ内のアプリケーションとは関係ありません。アプリケーションタグでマニフェストを投稿したい場合は、android.app.applicationに関連するNullPointerを表示しています。 – sankar

答えて

0

initializeJavaContextClassLoaderメソッドの346行目にNULLポインタがあります。

02-22 11:31:07.098: E/AndroidRuntime(479): at android.app.LoadedApk.initializeJavaContextClassLoader(LoadedApk.java:346) 

編集

ここでは、別の仮想マシンを共有しようとするかもしれないように見えますGrepCode/com.google.android/android/2.3_r1/ android.app.LoadedApkline 326から始まる)

private void initializeJavaContextClassLoader() { 
    IPackageManager pm = ActivityThread.getPackageManager(); 
    android.content.pm.PackageInfo pi; 
    try { 
     pi = pm.getPackageInfo(mPackageName, 0); 
    } catch (RemoteException e) { 
     throw new AssertionError(e); 
    } 
    /* 
    * Two possible indications that this package could be 
    * sharing its virtual machine with other packages: 
    * 
    * 1.) the sharedUserId attribute is set in the manifest, 
    *  indicating a request to share a VM with other 
    *  packages with the same sharedUserId. 
    * 
    * 2.) the application element of the manifest has an 
    *  attribute specifying a non-default process name, 
    *  indicating the desire to run in another packages VM. 
    */ 
    boolean sharedUserIdSet = (pi.sharedUserId != null); 
    boolean processNameNotDefault = 
      (pi.applicationInfo != null && 
      !mPackageName.equals(pi.applicationInfo.processName)); 
    boolean sharable = (sharedUserIdSet || processNameNotDefault); 
    ClassLoader contextClassLoader = 
      (sharable) 
      ? new WarningContextClassLoader() 
    : mClassLoader; 
      Thread.currentThread().setContextClassLoader(contextClassLoader); 
} 

からの方法がありますパッケージ。

+0

私は知っていますが、このLoadedApk.javaはシステム関連のクラスです。私のコードで何ができるのですか?エミュレータの問題ですか? – sankar

+1

エミュレータではありません。はいLoadedApk.javaはシステム関連のファイルですが、あなたはそのメソッドに何かしています。私はそれをほぼ保証できるあなたのコードです! – rf43

+2

私はこのメソッドを自分のコードのどこにも使用しませんでした。このクラスは、デバイスにapkをロードしているときに使用され、次にこれを自分のコードで行っています。 – sankar

1

私はXMLでいろいろ書いが間違っている場合は、多分あなたは自分のR.java

0

を再生成する必要があり、私は最近、この問題を抱えていたが、IDEAに現れて、この問題を得ました。プロジェクトの途中でEclipseに切り替える必要がありました。私はここで良い答えが得られませんでした。私がプロジェクトを終えた後、私はIDEAに戻り、もう一度試しました。最終的な解決策は、プロジェクトを自分のワークスペースから移動し、ソースとリソース以外のすべてを削除し、既存のソースから新しいプロジェクトを作成することでした。これを理解しようと時間を無駄にしてしまい、Eclipseでうまくいくかもしれません。試してみる価値があります...

幸運

関連する問題