2017-02-01 4 views
7

firebase storage.Nowアプリケーションからダウンロードしたイメージのディスクキャッシュにokhttpとpicasso(following this answer)を使ってみましたが、例外が発生し、クラッシュしました。これらの投稿はpost 1,post 2です。私はまた、きれいにしてプロジェクトを再構築しようとしましたが、運はありません。レッドマンは言ったが、それでもこれまでと同じerror.Accordingを与えるとして、私はmultidexを有効にしている :ここ原因:java.lang.NoClassDefFoundError:クラスがブートクラスローダを使用して見つかりませんでした。使用可能なスタックトレースがありません

build.gradle

 apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 25 
    buildToolsVersion "25.0.2" 
    defaultConfig { 
     applicationId "social.com.networking.social.media.app" 
     minSdkVersion 16 
     targetSdkVersion 25 
     versionCode 1 
     versionName "1.0" 
     testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
      multiDexEnabled true 


     } 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { 
     exclude group: 'com.android.support', module: 'support-annotations' 
    }) 
    compile 'com.android.support:appcompat-v7:25.1.0' 
    compile 'com.android.support:design:25.1.0' 
    compile 'br.com.mauker.materialsearchview:materialsearchview:1.2.0' 
    compile 'com.alirezaafkar:toolbar:1.1.1' 
    compile 'com.github.mancj:MaterialSearchBar:0.3.5' 
    compile 'com.squareup.picasso:picasso:2.5.2' 
    compile 'com.nineoldandroids:library:2.4.0' 
    compile 'com.daimajia.slider:library:[email protected]' 
    compile 'com.google.code.gson:gson:2.6.2' 
    compile 'com.google.firebase:firebase-core:10.0.1' 
    compile 'com.google.firebase:firebase-ads:10.0.1' 
    compile 'com.google.firebase:firebase-messaging:10.0.1' 
    compile "com.google.firebase:firebase-auth:10.0.1" 
    compile 'com.google.firebase:firebase-storage:10.0.1' 
    compile 'com.google.firebase:firebase-crash:10.0.1' 
    compile 'com.squareup.okhttp3:okhttp:3.2.0' 
    compile 'com.jakewharton.picasso:picasso2-okhttp3-downloader:1.0.2' 
    compile 'com.android.support:multidex:1.0.1' 

    compile 'org.parceler:parceler-api:1.1.6' 
    annotationProcessor 'org.parceler:parceler:1.1.6' 


    testCompile 'junit:junit:4.12' 
} 
apply plugin: 'com.google.gms.google-services' 

のフルスタックトレース

Process: social.com.networking.social.media.app, PID: 28258                 java.lang.NoClassDefFoundError: Failed resolution of: Lcom/squareup/okhttp/OkHttpClient; 
                          at com.squareup.picasso.OkHttpDownloader.defaultOkHttpClient(OkHttpDownloader.java:31) 
                          at com.squareup.picasso.OkHttpDownloader.<init>(OkHttpDownloader.java:76) 
                          at com.squareup.picasso.OkHttpDownloader.<init>(OkHttpDownloader.java:65) 
                          at social.com.networkingsocialmediaapp.Global.onCreate(Global.java:17) 
                          at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1018) 
                          at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4991) 
                          at android.app.ActivityThread.-wrap1(ActivityThread.java) 
                          at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1555) 
                          at android.os.Handler.dispatchMessage(Handler.java:111) 
                          at android.os.Looper.loop(Looper.java:207) 
                          at android.app.ActivityThread.main(ActivityThread.java:5776) 
                          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: Didn't find class "com.squareup.okhttp.OkHttpClient" on path: DexPathList[[zip file "/data/app/social.com.networking.social.media.app-2/base.apk"],nativeLibraryDirectories=[/data/app/social.com.networking.social.media.app-2/lib/arm64, /vendor/lib64, /system/lib64]] 
                          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 com.squareup.picasso.OkHttpDownloader.defaultOkHttpClient(OkHttpDownloader.java:31)  
                          at com.squareup.picasso.OkHttpDownloader.<init>(OkHttpDownloader.java:76)  
                          at com.squareup.picasso.OkHttpDownloader.<init>(OkHttpDownloader.java:65)  
                          at social.com.networkingsocialmediaapp.Global.onCreate(Global.java:17)  
                          at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1018)  
                          at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4991)  
                          at android.app.ActivityThread.-wrap1(ActivityThread.java)  
                          at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1555)  
                          at android.os.Handler.dispatchMessage(Handler.java:111)  
                          at android.os.Looper.loop(Looper.java:207)  
                          at android.app.ActivityThread.main(ActivityThread.java:5776)  
                          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)  
                          Suppressed: java.lang.ClassNotFoundException: com.squareup.okhttp.OkHttpClient 
                          at java.lang.Class.classForName(Native Method) 
                          at java.lang.BootClassLoader.findClass(ClassLoader.java:781) 
                          at java.lang.BootClassLoader.loadClass(ClassLoader.java:841) 
                          at java.lang.ClassLoader.loadClass(ClassLoader.java:504) 
                            ... 15 more 
                         Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available 

編集-1でありますdeveloper.android.com/studio/build/multidex.html#keepベースapkで必要なクラスを決定する必要があります。どのクラスが必要かを判断します。

答えて

51

Androidスタジオ2.3以上即時実行あなたのコードに影響する可能性があります。

無効に​​

ファイル - >設定 - >ビルドし、実行、展開 - >インスタントファイル名を指定して実行

In my case it was working perfect when run from Android Studio but crashing when install from other sources

+2

私のために働いた。おかげです。 –

+0

ありがとう。出来た。 – Kumar

+0

いつかこのことを考えてください。そして、これが問題になった。 – Darpan

6

あなたは親切にあなたの携帯

2からアプリをアンインストールする)multidex

defaultConfig { 

    minSdkVersion 14 
    targetSdkVersion 21 

    multiDexEnabled true 
} 

dependencies { 
    compile 'com.android.support:multidex:1.0.0' 
} 
+0

あなたが言ったように私はmultidexを有効にしていますが、これと同じエラーが表示されます。https://developer.android.com/studio/build/multidex.html#keepベースapkで必要なクラスを決定する必要があります。どんなクラスが必要なのか –

+0

次のhttp://stackoverflow.com/a/31724082/6478047この回答、またはhttp://stackoverflow.com/a/37084656/6478047この回答 – Redman

4

1を有効にするために、この

https://developer.android.com/studio/build/multidex.htmlからガイドに従って、multidexを有効にする必要があるかもしれませんが)アプリを再インストールします今度はandroid studioから

3)98%それ以外の場合は、プロジェクトをクリーンアップして再インストールしてください

1

プロジェクトから.gradleフォルダーを削除してください。

+0

これは私のために働いた唯一のソリューションです。 Android Studioを使用してデプロイするのではなく、コマンドラインです。 –

2

私のコードはUSBケーブルを使用してデバイスでうまくコンパイルできますが、* .apkファイルを使用してインストールしようとしたときに破損していたため、ファイル - >設定 - >ビルド、 - >即時実行、しかし、今すぐその* .apkファイルで正常に動作し、USBインストールを中断することを開始、私がOKを押しても、エラーメッセージがattachecイメージにあります。同じエラーメッセージが表示されます。

enter image description here

0

また、私はこの問題を持っていた、そしてそれはインスタントrun.Laterをオフにすることは可能ではないですが、私は、ビルド・キャッシュフォルダの下のすべてのファイルを削除したことが判明した後、きれいに私のディレクトリはC:\ Users \ HDBです。 Android \ built-cache.Iこのバグに遭遇した他の人を助けてくれることを願っています。

関連する問題