gpt4 book ai didi

android - Multidex 找不到类

转载 作者:太空狗 更新时间:2023-10-29 13:50:02 31 4
gpt4 key购买 nike

由于我已达到 64K 方法的限制,我已在我的应用程序中激活了 Multidex。

我正在 2 种不同的设备上进行测试:

  • 三星 Galaxy S7(API 24)
  • Alps A733(API 19,Google 服务不是最新的)

在第一个上一切正常,但在第二个上我遇到了这些错误并且整个应用程序卡住(不崩溃)。

错误

E/dalvikvm: Could not find class 'android.app.job.JobScheduler', referenced from method com.google.android.gms.internal.zzcfr.zzazv
E/dalvikvm: Could not find class 'android.app.job.JobScheduler', referenced from method com.google.android.gms.internal.zzcfr.zzs
E/dalvikvm: Could not find class 'android.graphics.drawable.RippleDrawable', referenced from method android.support.v7.widget.AppCompatImageHelper.hasOverlappingRendering

我关注了the documentation所以:

在我的 gradle 中我添加了:

  • multiDexEnabled true
  • 编译 'com.android.support:multidex:1.0.1' 因为我将 API 16 定位为 minSDKVersion

在我的自定义应用程序类中

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

为了尝试解决这个问题,我创建了一个 multidex-config.txt 文件,该文件与引用它的 build.gradle 位于同一文件夹中。

multidex-config.txt(已编辑)

android/app/job/JobScheduler.class
android/support/v4/widget/DrawerLayout.class
android/graphics/drawable/RippleDrawable.class

然后在gradle中:

buildTypes {

debug {
multiDexKeepFile file('multidex-config.txt')
//...
}

debugStaging {
initWith(buildTypes.debug)
//...
}

release {
multiDexKeepFile file('multidex-config.txt')
minifyEnabled false
//...
}
}

我想我错过了什么。有什么线索吗?

编辑

Gradle 文件

android {
compileSdkVersion 26

defaultConfig {
//...
minSdkVersion 16
targetSdkVersion 25
multiDexEnabled true
versionCode 10
//...
}

buildTypes {
//...
debug {
//...
multiDexKeepFile file('multidex-config.txt')
}

debugStaging {
initWith(buildTypes.debug)
//...
}

release {
//...
multiDexKeepFile file('multidex-config.txt')
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
//...
}
}

dexOptions {
maxProcessCount 6
javaMaxHeapSize "2g"
jumboMode true
}
//...
}

ext {
//...
}

dependencies {
//...
implementation 'com.android.support:multidex:1.0.2'
//...
}

// Required by Firebase
apply plugin: 'com.google.gms.google-services'

最佳答案

multidex-config.txt 的格式似乎与 Android Documentation 中描述的格式不同.

It seems like the -keep should not be here. Its part of multiDexKeepProguard not multiDexKeepFile

格式应该是

com/example/MyClass.class
com/example/MyOtherClass.class

由于 Alps A733 具有 API 19(API 级别低于 20 的任何应用),您的应用会崩溃并出现错误 java.lang.NoClassDefFoundError。

关于android - Multidex 找不到类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49318904/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com