Anwendung, die nur auf Lutscher-Geräten stürzt

Anwendung funktioniert gut auf allen OS, aber wenn ich Facebook SDK hinzufügen, gibt es mir folgende Fehlermeldung auf Lutscher-Geräten.

compile 'com.facebook.android:facebook-android-sdk:4.20.0' 

Verursacht durch: java.lang.ClassNotFoundException: Die Klasse "retrofit2.Retrofit $ Builder" nicht gefunden: DexPathList [[Zip-Datei "/data/app/com.myapp.app-3/base.apk", Zip-Datei

  • YouTubePlayerView lädt das Video auf die Bildschirmorientierung ein
  • Debugging Android Widget Code In Eclipse
  • TextView mit Hintergrundfarbe und Zeilenabstand
  • Wie bekomme ich Wert von LinkedHashMap basierend auf Index nicht auf Schlüssel?
  • Wo finde ich die Standard-AlertDialog-Layout-XML-Datei?
  • Ich kann keine Registrierungs-ID von Android GCM bekommen
  • Java.lang.NoClassDefFoundError: Fehlerhafte Auflösung von: Lretrofit2 / Retrofit $ Builder; Verursacht durch: java.lang.ClassNotFoundException: Die Klasse "retrofit2.Retrofit $ Builder" nicht gefunden: DexPathList [[Zip-Datei "/data/app/com.myapp.app-3/base.apk", Zip-Datei "/ Data / app / com.myapp.app-3 / split_lib_dependencies_apk.apk",

    Das ist meine gradle datei.

     compileSdkVersion 25 buildToolsVersion "25.0.0" defaultConfig { applicationId 'com.myapp.app' minSdkVersion 21 targetSdkVersion 23 versionCode 122 versionName "1.2.5" multiDexEnabled true ndk { abiFilters "armeabi", "armeabi-v7a", "x86" } configurations.all { resolutionStrategy { force 'com.squareup.okhttp:okhttp:2.4.0' force 'com.squareup.okhttp:okhttp-urlconnection:2.0.0' force 'com.squareup.okio:okio:1.11.0' force 'com.squareup.okhttp3:okhttp:3.6.0' force 'com.squareup.retrofit2:retrofit:2.2.0' force 'com.android.support:recyclerview-v7:25.0.0' force 'com.android.support:support-v4:25.0.0' force 'com.android.support:cardview-v7:25.0.0' force 'com.android.support:appcompat-v7:25.0.0' force 'com.android.support:design:25.0.0' force 'com.android.support:support-annotations:25.0.0' force 'com.google.android.gms:play-services-ads:9.0.1' force 'com.google.android.gms:play-services-location:9.0.1' force 'com.google.android.gms:play-services-auth-base:9.0.1' force 'com.google.android.gms:play-services-base:9.0.1' } configurations.all { resolutionStrategy { failOnVersionConflict() } } 

    Bitte leiten Sie mich an, was der Grund für diesen Crash sein kann, und warum sein einziges Abstürzen auf Lutscher-Geräten und funktioniert gut auf Marshmallow und Nougat.

    BEARBEITEN

    Wenn ich nicht facebook sdk verwende, scheint alles gut, keine Abstürze. Vielleicht Facebook sdk verursachen dieses Problem aber ich weiß nicht warum

  • Video spielt nur einmal in Webview von Android
  • Wie setze ich Layout und Textgröße auf DP im Programm?
  • Appcompat-v7 v21.0.0 verursacht Crash auf Samsung-Geräte mit Android v4.2.2
  • Nach der Bildschirmorientierung wechseln die dialogFragment anscheinend ohne Anrufe
  • Ich kann nicht herausfinden, wie man Downloader Library und Licensing Library zu Android Studio hinzufügen kann
  • Wenden Sie zwei verschiedene Schriftstile auf eine Textansicht an
  • 4 Solutions collect form web for “Anwendung, die nur auf Lutscher-Geräten stürzt”

    Sie verwenden zu viele Bibliotheken, so dass Ihre Methoden über 64k gekreuzt haben, so dass Sie Multidex für Sie Projekt aktivieren müssen

    In deinem build.gradle

      android { defaultConfig { ... minSdkVersion 15 targetSdkVersion 25 multiDexEnabled true } ... } dependencies { compile 'com.android.support:multidex:1.0.1' } 

    Und in AndroidManifest.xml

      <application android:name="android.support.multidex.MultiDexApplication" > ... </application> 

    Sehen Sie dies für mehr Info

    In meinem Fall hat dies mein Problem in der Anwendungsklasse gelöst

      @Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(this); } 

    Das wichtigste Problem, das ich sehen kann ist, dass Sie die Methoden begrenzt haben, indem Sie eine Menge von Bibliotheken in Ihrem Projekt hinzufügen. Android App hat eine bestimmte Grenze von Methoden. Um Ihren Code effizient zu machen, werde ich Ihnen vorschlagen, alle unnötigen Bibliotheken zu entfernen, warum verwenden Sie dann "Retrofit" und "OkHttp" zusammen? Sie können die ganze Arbeit von einem von ihnen erledigen. Aber immer noch, wenn du alle diese Bibliotheken benutzen möchtest, dann musst du deine App zu "Multidex" verwenden. Hier ist der Weg, um "Multidex" Nutzung zu ermöglichen.

    https://developer.android.com/studio/build/multidex .

    Aber ich werde nicht vorschlagen, dies zu benutzen. Weil dies wird beladen auf Ihre App und wird mehr Platz in Phone's ram Wahl ist Ihr!

    Du bekommst ClassNotFoundException

    Die ClassNotFoundException wird ausgelöst, wenn die Java Virtual Machine (JVM) versucht, eine bestimmte Klasse zu laden und die angegebene Klasse im Klassenpfad nicht zu finden ist.

    Zuerst sollten Sie Multidex setzen .

    Android-Anwendungen (APK) -Dateien enthalten ausführbare Bytecode-Dateien in Form von Dalvik Executable (DEX) -Dateien, die den kompilierten Code enthalten, der zum Ausführen Ihrer App verwendet wird. Die Dalvik Executable Spezifikation begrenzt die Gesamtzahl der Methoden, die innerhalb einer einzigen DEX-Datei auf 65.536 referenziert werden können, einschließlich Android-Framework-Methoden, Bibliotheksmethoden und Methoden in Ihrem eigenen Code. Wenn Sie dieses Limit überschreiten, müssen Sie Ihren App-Build-Prozess konfigurieren, um mehr als eine DEX-Datei zu generieren, die als Multidex-Konfiguration bekannt ist.

    Sie sollten die neueste Version verwenden

      compileSdkVersion 25 buildToolsVersion '25.0.2' defaultConfig { applicationId 'com.myapp.app' minSdkVersion 21 targetSdkVersion 25 // Good approach using same version of compileSdkVersion versionCode 122 versionName "1.2.5" multiDexEnabled true ndk { abiFilters "armeabi", "armeabi-v7a", "x86" } configurations.all { resolutionStrategy { force 'com.squareup.okhttp:okhttp:3.7.0' force 'com.squareup.okhttp:okhttp-urlconnection:2.7.5' force 'com.squareup.okio:okio:1.12.0' force 'com.squareup.okhttp3:okhttp:3.7.0' force 'com.squareup.retrofit2:retrofit:2.2.0' force 'com.android.support:recyclerview-v7:25.2.0' force 'com.android.support:support-v4:25.2.0' force 'com.android.support:cardview-v7:25.2.0' force 'com.android.support:appcompat-v7:25.2.0' force 'com.android.support:design:25.2.0' force 'com.android.support:support-annotations:25.2.0' force 'com.google.android.gms:play-services-ads:10.2.1' force 'com.google.android.gms:play-services-location:10.2.1' force 'com.google.android.gms:play-services-auth-base:10.2.1' force 'com.google.android.gms:play-services-base:10.2.1' } configurations.all { resolutionStrategy { failOnVersionConflict() } } 

    Danach Clean-Rebuild-Run.

    FYI

    Sie können unter Version verwenden, wenn 4.20.0 abstürzt.

     compile 'com.facebook.android:facebook-android-sdk:4.16.0' 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.