java.lang.NoClassDefFoundError:解析失败:Landroid/support/v4/util

java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v4/util/ArrayMap;(java.lang.NoClassDefFoundError:解析失败:Landroid/support/v4/util/ArrayMap;)
本文介绍了java.lang.NoClassDefFoundError:解析失败:Landroid/support/v4/util/ArrayMap;的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

今天我在尝试运行我的应用程序时发现了这个错误.我做了以下尝试来解决它.- 首先我删除了 multidex 支持,但我仍然可以在那里看到 apk 的切片.-i 还尝试重建整个项目,并按照 java.lang.NoClassDefFoundError: 解析失败:Landroid/support/v4/util/ArrayMap

Today i found this error while trying to run my app. I made the following attempts towards solving it. - First i removed multidex support, but i can still see the slices of apk there. -i also attempted rebuilding the entire project, and updated the android support and play services libraries to the latest as recommended by java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v4/util/ArrayMap

Android Studio - NoClassDefFoundError:Landroid/support 解析失败/v4/print/PrintHelper

java.lang.NoClassDefFoundError: 失败分辨率:Landroid/support/v4/os/BuildCompat.

NoClassDefFoundError: android.support.v4.util.ArrayMap

stacktrace如下

The stacktrace is as follows

java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v4/util/ArrayMap;
at com.google.firebase.FirebaseApp.
<clinit>
(Unknown Source)
at com.google.firebase.FirebaseApp.initializeApp(Unknown Source)
at com.google.firebase.provider.FirebaseInitProvider.onCreate(Unknown Source)
at android.content.ContentProvider.attachInfo(ContentProvider.java:1751)
at android.content.ContentProvider.attachInfo(ContentProvider.java:1726)
at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source)
at android.app.ActivityThread.installProvider(ActivityThread.java:5324)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:4898)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4838)
at android.app.ActivityThread.access$1500(ActivityThread.java:178)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1536)
at android.os.Handler.dispatchMessage(Handler.java:111)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5636)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:959)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:754)
Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v4.util.ArrayMap" on path: DexPathList[[zip file "/data/app/pinnacle.org.rider-1/base.apk", zip file "/data/app/pinnacle.org.rider-1/split_lib_dependencies_apk.apk", zip file "/data/app/pinnacle.org.rider-1/split_lib_slice_0_apk.apk", zip file "/data/app/pinnacle.org.rider-1/split_lib_slice_1_apk.apk", zip file "/data/app/pinnacle.org.rider-1/split_lib_slice_2_apk.apk", zip file "/data/app/pinnacle.org.rider-1/split_lib_slice_3_apk.apk", zip file "/data/app/pinnacle.org.rider-1/split_lib_slice_4_apk.apk", zip file "/data/app/pinnacle.org.rider-1/split_lib_slice_5_apk.apk", zip file "/data/app/pinnacle.org.rider-1/split_lib_slice_6_apk.apk", zip file "/data/app/pinnacle.org.rider-1/split_lib_slice_7_apk.apk", zip file "/data/app/pinnacle.org.rider-1/split_lib_slice_8_apk.apk", zip file "/data/app/pinnacle.org.rider-1/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/pinnacle.org.rider-1/lib/arm, /vendor/lib, /system/lib]]
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.google.firebase.FirebaseApp.
<clinit>
(Unknown Source) 
at com.google.firebase.FirebaseApp.initializeApp(Unknown Source) 
at com.google.firebase.provider.FirebaseInitProvider.onCreate(Unknown Source) 
at android.content.ContentProvider.attachInfo(ContentProvider.java:1751) 
at android.content.ContentProvider.attachInfo(ContentProvider.java:1726) 
at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source) 
at android.app.ActivityThread.installProvider(ActivityThread.java:5324) 
at android.app.ActivityThread.installContentProviders(ActivityThread.java:4898) 
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4838) 
at android.app.ActivityThread.access$1500(ActivityThread.java:178) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1536) 
at android.os.Handler.dispatchMessage(Handler.java:111) 
at android.os.Looper.loop(Looper.java:194) 
at android.app.ActivityThread.main(ActivityThread.java:5636) 
at java.lang.reflect.Method.invoke(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:372) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:959) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:754) 
Suppressed: java.lang.ClassNotFoundException: android.support.v4.util.ArrayMap
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)
... 19 more
Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available

这是我的 gradle 文件

Here is my gradle file

apply plugin: 'com.android.application'
apply plugin: 'realm-android'
apply plugin: 'com.google.firebase.firebase-crash'

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"
    defaultConfig {
        applicationId "pinnacle.org.rider"
        minSdkVersion 16
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
       // multiDexEnabled true
        vectorDrawables.useSupportLibrary = true
    }

    useLibrary 'org.apache.http.legacy'
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }

      /*  debug {
            minifyEnabled true
            shrinkResources true
        }*/
    }

    dataBinding {
        enabled true
    }

    dexOptions {
        jumboMode = true
        // here heap size give 4g i got this thing from https://groups.google.com/forum/#!topic/adt-dev/P_TLBTyFWVY
        javaMaxHeapSize "4g"
     }

    packagingOptions {
        exclude 'META-INF/NOTICE' // will not include NOTICE file
        exclude 'META-INF/LICENSE' // will not include LICENSE file
        exclude 'META-INF/notice'
        exclude 'META-INF/notice.txt'
        exclude 'META-INF/license'
        exclude 'META-INF/license.txt'
    }
}


dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile project(':trupple-mvp')
    compile project(':pinbuoy')
    compile 'com.squareup:otto:1.3.8'
    compile 'io.card:android-sdk:5.4.2'
    compile 'com.google.guava:guava:19.0'
    compile 'co.paystack.android:paystack:2.1.2'
    testCompile 'org.robolectric:robolectric:3.1.1'
    compile 'com.google.firebase:firebase-messaging:10.2.0'
    compile 'com.google.firebase:firebase-crash:10.2.0'
    compile 'com.squareup.okhttp3:okhttp:3.3.0'
    compile 'com.squareup.okhttp3:logging-interceptor:3.3.0'
    compile 'com.squareup.retrofit2:retrofit:2.1.0'
    compile 'com.squareup.retrofit2:converter-gson:2.0.1'
    compile 'com.squareup.retrofit2:converter-jackson:2.0.1'
    compile 'com.github.cooltechworks:CreditCardView:v1.0'
    compile 'com.squareup.retrofit2:adapter-rxjava:2.0.1'
   // compile 'com.android.support:multidex:1.0.1'
    compile 'javax.annotation:javax.annotation-api:1.2'
    compile 'de.hdodenhof:circleimageview:2.0.0'
    compile 'it.michelelacorte.swipeablecard:library:2.3.0'
    compile 'com.github.jorgecastilloprz:fabprogresscircle:1.01@aar'
    compile 'com.github.lawloretienne:discreteslider:0.0.9'
    compile 'com.jaredrummler:material-spinner:1.1.0'
    compile files('libs/libphonenumber-7.7.0.jar')
    compile('io.socket:socket.io-client:0.8.1') {
        exclude group: 'org.json', module: 'json'
    }
    compile 'com.android.support:support-vector-drawable:25.1.1'
    compile 'com.github.dmytrodanylyk.circular-progress-button:library:1.1.3'
    compile 'com.android.support.constraint:constraint-layout:1.0.0-beta5'
    testCompile 'org.mockito:mockito-core:1.9.5'
    testCompile 'junit:junit:4.12'
}

apply plugin: 'com.google.gms.google-services'

我的自定义库有以下作为他们的 gradle

My custom libraries have the following as their gradle

apply plugin: 'com.android.library'

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"
    defaultConfig {
        minSdkVersion 15
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }

    useLibrary 'org.apache.http.legacy'

    dataBinding {
        enabled true
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

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.google.android.gms:play-services:10.2.0'
    //compile 'com.android.support:support-v4:25.1.1'
    compile 'com.android.support:recyclerview-v7:25.1.1'
    //compile 'com.android.support:appcompat-v7:25.1.1'
    compile 'com.android.support:cardview-v7:25.1.1'
    compile 'com.android.support:design:25.1.1'
    compile 'com.squareup.picasso:picasso:2.5.0'
    compile 'io.reactivex:rxandroid:1.2.1'
    compile 'io.reactivex:rxjava:1.1.6'
    compile 'com.google.code.gson:gson:2.7'
    testCompile 'junit:junit:4.12'

}

第二个是

apply plugin: 'com.android.library'

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"

    defaultConfig {
        minSdkVersion 15
        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'
        }
    }
}

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.1'
    testCompile 'junit:junit:4.12'
}

请让我坚持下去

我通过执行以下操作解决了这个问题.

I solved this by doing the following.

  1. 在播放服务库模块中选择所需的确切包.
  2. 确保没有重复的支持库.
  3. 清理并重建项目.
  4. 将库源保留在 64k 方法下,因此需要 multidex.

推荐答案

我在使用 Flutter 时遇到了同样的问题,当我搜索我的错误时,这个问题是 Google 上的第一个链接:

I faced the same problem with Flutter and this question was the first link on Google when I searched my error:

java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v4/util/ArraySet

所以你的问题的根源可能是相同的:AndroidX 适配.将这些行添加到 gradle.properties 解决了我的问题:

So the root of your problem might be same: AndroidX adaptation. Adding those lines to gradle.properties fixed my problem:

android.useAndroidX=true
android.enableJetifier=true

您可能还想将 compileSdkVersion 28 添加到您的 app-level build.gradle 文件中.更多信息

You may also want to add compileSdkVersion 28 to your app-level build.gradle file. For further information

这篇关于java.lang.NoClassDefFoundError:解析失败:Landroid/support/v4/util/ArrayMap;的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Android release APK crash with java.lang.AssertionError: impossible in java.lang.Enum(Android 发布 APK 因 java.lang.AssertionError 崩溃:在 java.lang.Enum 中不可能)
Finished with Non Zero Exit Value 3(以非零退出值 3 结束)
On gradle:3.0.0 More than one file was found with OS independent path #39;META-INF/ASL2.0#39;(在 gradle:3.0.0 上找到多个文件,其独立于操作系统的路径为“META-INF/ASL2.0)
Android : app loading library at runtime on Lollipop but not IceCreamSandwich(Android:运行时在 Lollipop 上而不是 IceCreamSandwich 上的应用程序加载库)
buildConfigField depending on flavor + buildType(buildConfigField 取决于风味 + buildType)
How do I suppress warnings when compiling an android library with gradle?(使用 gradle 编译 android 库时如何抑制警告?)