并非总是如此,但有时我在运行我的应用程序时会在logcat中看到此异常
引起:java.lang.ClassNotFoundException:在路径上找不到类“com.example.classname”:DexPathList [[directory“。”],nativeLibraryDirectories = [/ vendor / lib,/ system / lib]]
应用不会崩溃,我的项目中会出现com.example.classname
。
我正在使用android studio 2.2,我正在为我们的项目使用multidex。
我怀疑这个问题是因为multidex。
有关如何修复此异常的任何想法?
我们的build.gradle文件很大。 我正在添加它的一部分
compileSdkVersion 23
buildToolsVersion '23.0.3'
defaultConfig {
minSdkVersion 17
targetSdkVersion 22
multiDexEnabled true
......
}
dependencies {
compile 'com.android.support:multidex:1.0.1'
testCompile('org.robolectric:shadows-multidex:3.0') {
exclude group: 'org.robolectric', module: 'robolectric'
}
}
在自定义应用程序类
中@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
答案 0 :(得分:-1)
尝试在您的应用程序类中使用这几行
extend android.app.Application
这肯定会有效:
由于内存不足,android创建了两个dex文件,所以
attachBaseContext()
管理这个问题
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
并在您的申请中使用
defaultConfig {
applicationId "com.example.YourApplication"
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0"
multiDexEnabled true
}
dexOptions {
javaMaxHeapSize "4g"
}