android:android 4.4 及以下版本的 NoClassDefFoundError
android : NoClassDefFoundError for android 4.4 and below
我的应用程序为 sdk 19 或更低版本提供 NoClassDefFoundError
。
我在 gradle
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
applicationId "com.idg.mail"
minSdkVersion 14
targetSdkVersion 23
multiDexEnabled = true
}
现在我尝试将其更改为
compileSdkVersion 19
buildToolsVersion "23.0.1"
defaultConfig {
applicationId "com.idg.gatcamail"
minSdkVersion 19
targetSdkVersion 19
multiDexEnabled = true
}
我也在 app-> module settings - android - sdk
中进行了更改。
通过这些更改,我构建了项目,但它仍然在我的 android 4.4
上给出相同的错误,并且它在更高版本上运行。
class 是在我处理网络操作的代码中定义的 class。
如何调试这个问题
我几乎可以肯定这是 multidex 问题。如果它 运行 在 sdk 21 上正确 - 这是 multidex 问题。
官方信息如下:Multidex
如果您正在使用 Application class 的自定义实现,它必须扩展 MultiDexApplication class。还需要 gradle 标志。如果您不使用自定义应用程序 class,只需添加清单中提供的条目 - 文档中对此进行了描述。
编辑:差点忘了 - 你必须添加依赖项,这个库提供了 multidex:compile 'com.android.support:multidex:1.0.1'
我的应用程序为 sdk 19 或更低版本提供 NoClassDefFoundError
。
我在 gradle
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
applicationId "com.idg.mail"
minSdkVersion 14
targetSdkVersion 23
multiDexEnabled = true
}
现在我尝试将其更改为
compileSdkVersion 19
buildToolsVersion "23.0.1"
defaultConfig {
applicationId "com.idg.gatcamail"
minSdkVersion 19
targetSdkVersion 19
multiDexEnabled = true
}
我也在 app-> module settings - android - sdk
中进行了更改。
通过这些更改,我构建了项目,但它仍然在我的 android 4.4
上给出相同的错误,并且它在更高版本上运行。
class 是在我处理网络操作的代码中定义的 class。
如何调试这个问题
我几乎可以肯定这是 multidex 问题。如果它 运行 在 sdk 21 上正确 - 这是 multidex 问题。
官方信息如下:Multidex
如果您正在使用 Application class 的自定义实现,它必须扩展 MultiDexApplication class。还需要 gradle 标志。如果您不使用自定义应用程序 class,只需添加清单中提供的条目 - 文档中对此进行了描述。
编辑:差点忘了 - 你必须添加依赖项,这个库提供了 multidex:compile 'com.android.support:multidex:1.0.1'