当前位置:   article > 正文

Android报错:Failed resolution of: Landroidx/appcompat/R$drawable; Didn‘t find class “androidx.appcom

failed resolution of

AS信息:

AS版本:4.0.2 , gradle:6.7.1 , gradleClassPath:"com.android.tools.build:gradle:4.0.2":

问题描述:

运行崩溃

Process: com.rl.jmessagedemo, PID: 7176
    java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/appcompat/R$drawable;
        at androidx.appcompat.widget.AppCompatDrawableManager$1.<init>(AppCompatDrawableManager.java:68)
        at androidx.appcompat.widget.AppCompatDrawableManager.preload(AppCompatDrawableManager.java:62)
        at androidx.appcompat.app.AppCompatDelegateImpl.<init>(AppCompatDelegateImpl.java:337)
        at androidx.appcompat.app.AppCompatDelegateImpl.<init>(AppCompatDelegateImpl.java:287)
        at androidx.appcompat.app.AppCompatDelegate.create(AppCompatDelegate.java:230)
        at androidx.appcompat.app.AppCompatActivity.getDelegate(AppCompatActivity.java:584)
        at androidx.appcompat.app.AppCompatActivity.attachBaseContext(AppCompatActivity.java:139)
        at android.app.Activity.attach(Activity.java:7899)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3401)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:223)
        at android.app.ActivityThread.main(ActivityThread.java:7656)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
     Caused by: java.lang.ClassNotFoundException: Didn't find class "androidx.appcompat.R$drawable" on path: DexPathList[[zip file "/data/app/~~RyJA_32z-s2GVwOyfnjzFg==/com.rl.jmessagedemo-8x7-VVnMD4vZbMnp7ROP8g==/base.apk"],nativeLibraryDirectories=[/data/app/~~RyJA_32z-s2GVwOyfnjzFg==/com.rl.jmessagedemo-8x7-VVnMD4vZbMnp7ROP8g==/lib/x86, /data/app/~~RyJA_32z-s2GVwOyfnjzFg==/com.rl.jmessagedemo-8x7-VVnMD4vZbMnp7ROP8g==/base.apk!/lib/x86, /system/lib, /system_ext/lib]]
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:207)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

原因分析:

因为上面我AS的版本和Gradle的版本都很高排除其他博主所说的升级版本问题,也并不是classPath路径和Gradle的版本不兼容问题,顾都排除,,,因为项目昨天还可以运行今天就报错 我寻思也没动什么配置文件,,其他博主基本都是说关掉AS中的insert run
在这里插入图片描述
试了之后好像没点用还是一样崩溃,因为这个为报错信息太形象了,加上我基本就没动代码,是个很耗时的问题,后来具体原因具体分析,经过大量搜索我通过AS崩溃日志里的一小段报错原因找到了类似的文章,加上我之前开发的一些经验,想起了MultiDex的配置,当App中的方法超过65536 个会进行分包处理,那么这个时候就需要进行手动配置多个dex文件代码如下:


解决方案:

App目录下build.gradle配置

  // 多dex配置
    implementation 'com.android.support:multidex:1.0.3'

     defaultConfig {
      //方法数超限时分割dex
        multiDexEnabled true
     }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码探险家/article/detail/915100
推荐阅读
相关标签
  

闽ICP备14008679号