我们发布的应用中存在一个让我们发疯的问题。
该应用在过去两年中一直在Google Play中流畅运行。我们在几周前更新了Android Studio和一些库,并且“Android Vitals”从那时起显示了很多错误。据我们所知,该应用程序 NOT 崩溃(该应用程序有很多评论,但没有一个提到崩溃问题)。已在许多设备上测试过,并取得了成功。
所有类型的设备(三星Galaxy,HTC,索尼等)及各种版本(Android 4,5,6,7)都会报告“崩溃”。所有“崩溃”都会像这样通知:
java.lang.RuntimeException:
at android.app.ActivityThread.handleReceiver (ActivityThread.java:2739)
at android.app.ActivityThread.access$1900 (ActivityThread.java:153)
at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1452)
at android.os.Handler.dispatchMessage (Handler.java:102)
at android.os.Looper.loop (Looper.java:154)
at android.app.ActivityThread.main (ActivityThread.java:5523)
at java.lang.reflect.Method.invoke (Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:739)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:629)
Caused by: java.lang.ClassNotFoundException:
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 android.app.ActivityThread.handleReceiver (ActivityThread.java:2734)
我对最近发生的事情一无所知。和 MultiDex 有什么关系吗?自从Android Studio更新后,我们遇到了一些问题 MultiDex 构建apk,看起来Android Studio缓存无法正常使用classes.dex(classes.dex的大小比classes2.dex小,以解决这个问题我们必须更改multiDex配置一次,重建,再次将multiDex配置更改为正确的参数并再次重建一次)。
这是gradle配置:
apply plugin: 'com.android.application'
android {
compileSdkVersion 25
buildToolsVersion '25.0.2'
defaultConfig {
...
minSdkVersion 15
targetSdkVersion 25
multiDexEnabled true
ndk {
abiFilters "armeabi-v7a", "x86"
}
}
sourceSets.main {
java.srcDir "src"
res.srcDir "res"
jniLibs.srcDir "libs"
manifest.srcFile "AndroidManifest.xml"
assets.srcDir "assets"
}
dexOptions {
javaMaxHeapSize "4g"
incremental false
jumboMode false
preDexLibraries false
}
signingConfigs {
...
}
buildTypes {
release {
signingConfig signingConfigs.release
debuggable false
jniDebuggable false
renderscriptDebuggable false
minifyEnabled false
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
}
repositories {
...
}
configurations {
provided
}
dependencies {
compile 'com.android.support:multidex:1.0.1'
...
}
为MultiDex配置了清单:
<application
android:allowBackup="true"
android:name="android.support.multidex.MultiDexApplication"
android:icon="@mipmap/ic_launcher">
...
请帮助!!