2017-09-08 2 views
15

開発者用コンソールに表示されているように、私のアンドロイドアプリでユーザーからクラッシュレポートがたくさんあります。私が見るスタックトレースは:java.lang.ClassNotFoundExceptionのソースを特定できません。BaseDexClassLoader

java.lang.RuntimeException: 

    at android.app.ActivityThread.handleReceiver (ActivityThread.java:2884) 

    at android.app.ActivityThread.-wrap14 (ActivityThread.java) 

    at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1565) 

    at android.os.Handler.dispatchMessage (Handler.java:111) 

    at android.os.Looper.loop (Looper.java:207) 

    at android.app.ActivityThread.main (ActivityThread.java:5728) 

    at java.lang.reflect.Method.invoke (Native Method) 

    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:789) 

    at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:679) 
Caused by: java.lang.ClassNotFoundException: 
at dalvik.system.BaseDexClassLoader.findClass (BaseDexClassLoader.java:56) 
at java.lang.ClassLoader.loadClass (ClassLoader.java:511) 
at java.lang.ClassLoader.loadClass (ClassLoader.java:469) 
at android.app.ActivityThread.handleReceiver (ActivityThread.java:2879) 

私のアプリケーションのパッケージ名への参照はありません。私は私の開発のためにEclipseを使用しています。それはmultidexに関係するものですか?これを解決するにはAndroid Studioに切り替える必要がありますか?スタックトレースの背後にある基本的な理由を理解することができないため、解決策を探すことができます。

注:私は、Googleがサービスを果たしてい、IAPとOneSignal SDKは私のアプリに

+1

これ以上の情報を入力しても問題ありませんか?エラーを再現できましたか?それはどうやって起こるのですか? – Smogen

+1

あなたはAndroidスタジオを使用する必要があります。 – danny117

+1

私たちのためにいくつかのバージョン情報が必要です.. – danny117

答えて

15

を追加しました私は個人的にAndroidのメーカーが two.Androidスタジオオーバーエッジは日によって、より人気の日になってきて持っていることを言うだろう アンドロイド開発コミュニティとオープンソースコミュニティの間でAndroid Studio or Eclipse?

読むMigrate to Android Studio

プロジェクトをAndroid Studioに移行するには、新しい プロジェクト構造、ビルドシステム、およびIDE機能に適応する必要があります。 EclipseからAndroidプロジェクトを移行する場合、Androidスタジオには インポートツールが用意されているため、既存のコードをAndroidの スタジオプロジェクトとGradleベースのビルドファイルにすばやく移行できます。

Logcatはdex-based ClassLoader様々な実装との間の共通機能のため

Caused by: java.lang.ClassNotFoundException: 
at dalvik.system.BaseDexClassLoader.findClass (BaseDexClassLoader.java:56) 

BaseDexClassLoader基本クラスをスロー。 MultiDex 構成を使用するアプリのプロジェクトを構成するために

、あなたは 上のアプリがサポートする最小のAndroidバージョンを応じて、以下の変更を加える必要があります。以下に示すように

は、あなたのbuild.gradlemodule-levelファイルにmultiDexEnabled trueを設定します。

android { 
    compileSdkVersion // 
    buildToolsVersion // 

    defaultConfig { 
     ... 
     minSdkVersion 14 
     targetSdkVersion // 
     ... 

     // Enabling multidex support. 
     multiDexEnabled true 
    } 
    ... 
} 

dependencies { 
    compile 'com.android.support:multidex:1.0.1' 
} 

をあなたはDexIndexOverflowExceptionを確認することができます。

+2

今日これを試して、それがどうなるかを教えてください – Sandeep

1

プロガードを使用しているため、一部のクラスを除外する必要があるようです。 プロジェクトで使用されているライブラリがすべて除外されていることを確認してください。

関連する問題