wake-up-neo.com

Verursacht durch: Java.lang.NoClassDefFoundError: Klasse wurde mit dem Boot-Klassen-Ladeprogramm nicht gefunden Es ist kein Stack-Trace verfügbar

Ich habe versucht, OkHttp und Picasso ( im Anschluss an diese Antwort ) für das Zwischenspeichern von Bildern zu verwenden, die ich aus Firebase-Speicher heruntergeladen habe. Nun gibt die App Ausnahmen und stürzt ab. Ich habe diese Posts gesehen: post 1 , post 2 aber ich habe keine relevanten Lösungen gefunden. Ich habe auch versucht, das Projekt zu reinigen und wieder aufzubauen, hatte aber kein Glück.

Hier ist 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'

Full Stacktrace:

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

Edit 1: Ich habe MultiDex aktiviert, wie Redman sagte, aber es gibt immer noch den gleichen Fehler. Entsprechend: developer.Android.com/studio/build/multidex.html#keep muss ich entscheiden, welche Klassen in der Basis-APK erforderlich sind. Wie bestimme ich, welche Klassen notwendig sind? 

11
Shubham Shukla

In Android Studio 2.3 und höher gibt es Instant Run , das sich auf Ihren Code auswirken kann.

Instant Run deaktivieren

Datei -> Einstellungen -> Erstellen, Ausführen, Bereitstellen -> Instant Run

In meinem Fall funktionierte es einwandfrei, wenn es von Android Studio aber .__ ausgeführt wurde. Absturz bei Installation aus anderen Quellen

56
Kishore Jethava

1) Deinstalliere die App bitte von deinem Handy

2) Installieren Sie die App jetzt erneut in Android Studio

3) 98% wird es funktionieren, das Projekt reinigen und erneut installieren 

8
Kulasekar

Möglicherweise müssen Sie Multidex aktivieren. Befolgen Sie die Anweisungen in dieser Anleitung

https://developer.Android.com/studio/build/multidex.html , zum Aktivieren von Multidex

  defaultConfig {

    minSdkVersion 14
    targetSdkVersion 21

    multiDexEnabled true
}

 dependencies {
     compile 'com.Android.support:multidex:1.0.0'
 }
6
Manohar Reddy

Entfernen Sie einfach den Build-Ordner Ihres Projekts, reinigen Sie die Anwendung und führen Sie sie aus. Das hat den Trick für mich gemacht ...

2
Rezaul Karim

Mein Code funktioniert zwar gut auf dem Gerät mithilfe eines USB-Kabels, aber als ich versuchte, das Programm mit der * .apk-Datei zu installieren, brach es. Daher habe ich die Option Datei -> Einstellungen -> Erstellen, Ausführen, Bereitstellung -> Sofort deaktiviert Führen Sie aus, aber jetzt funktioniert es gut mit der * .apk-Datei. Wenn Sie mit der USB-Installation brechen, wird die Fehlermeldung im Attachec-Image angezeigt. Wenn Sie auf OK klicken, funktioniert es nicht, wenn Sie es erneut installieren Fehlermeldung erscheint. 

 enter image description here

2
Shamim Ahmad

Entfernen Sie den Ordner .gradle aus dem Projekt.

1
Zon

Ich fand eine andere "Antwort" auf das Problem. Ich habe dieselbe Fehlermeldung mit Android Studio 3.3.2 erhalten. Ich habe beschlossen, ALLE Haltepunkte zu löschen. Im Dialogfeld "Haltepunkte" gibt es zwei "permanente" Optionen: Java Ausnahme-Haltepunkte und Ausnahme-Haltepunkte. Ich ließ sie beide wahrscheinlich versehentlich überprüfen. Wenn ich sie und andere Haltepunkte gelöscht habe, konnte ich im Debug-Modus ausgeführt werden. Jetzt, da das Debug ausgeführt wird, kann ich Haltepunkte hinzufügen, solange diese nicht markiert sind!

0
Wild Will

Ich hatte auch dieses Problem, und es ist immer noch nicht möglich, den Instant Run auszuschalten. Später stellte ich fest, dass ich alle Dateien im Ordner build-cache gelöscht und das Projekt anschließend gelöscht habe. Mein Verzeichnis ist C:\Users\HDB. Android\built-cache.Ich hoffe, ich kann anderen Menschen helfen, die auf diesen Fehler stoßen.

0
hepeng

(Ich weiß, das ist eine alte Frage, aber ich bin hergekommen, um nach einem ähnlichen Problem zu suchen.)

Ich habe eine andere Antwort auf vor Sie erschöpfen alle anderen oben genannten Vorschläge: der ClassNotFoundException: YourParcelableClass-Fehler ist möglicherweise nicht das Problem. In der Tat kann es kein a Problem sein.

Ich habe eine App, die einen Bildschirm mit verschiedenen Inhalten anzeigt, der als Parcelable übergeben und als HTML in einem WebView dargestellt wird. Es hat gut funktioniert, bis ich den Code bereinigt, eingecheckt, einen neuen Baum ausgecheckt habe und die App auf meinem Telefon deinstalliert und erneut installiert habe. Ich bekam einen leeren Bildschirm. Offensichtlich bedeutete ClassNotFoundException im Protokoll, dass mein Inhalt nicht korrekt entfernt wurde.

Nach mindestens einer Stunde Deaktivierung von Instant Run, rm -rf .gradle, Clean Project, Invalidate Caches & Restart usw. usw. fing ich an, zunehmend vernünftig-fragende Protokollierung hinzuzufügen, bis ich herausfand, dass ich war Meine Inhalte von Intent.getParcelableExtra() abrufen; der leere Bildschirm schien nicht verwandt zu sein! (Ich weiß immer noch nicht warum, aber WebView.loadData() hatte aufgehört zu arbeiten und musste durch WebView.loadDataWithBaseURL() ersetzt werden.)

Hoffentlich erspart dies jemandem eine Stunde Dummheit. Wenn diese ClassNotFoundException mit dem Namen Ihrer Klasse angezeigt wird, prüfen Sie, ob Ihre Objekte noch ordnungsgemäß entfernt werden. Sie könnten sein!

0
kuhrusty

Für mich wurde dieses Problem gelöst durch Disable Instant Run

Gehen Sie einfach zu Voreinstellungen -> Erstellen, Ausführen, Bereitstellung -> Instant Run -> Deaktivieren Sie die Option

Und starte die App erneut

0
Mayuresh Satao