【发布时间】:2023-03-22 01:35:02
【问题描述】:
我正在将现有应用从 Eclipse 转换为 Android Studio。但是,当我在运行 4.x 的设备上运行它时(我已经在模拟器上测试了几个版本),它立即崩溃并显示 NoClassDefFoundError。
我已经尝试注释掉对它找不到的类的引用,但总会有另一个。据我所知,有问题的班级总是
- 在我自己的代码中
- 一个内部类(更新:经过更多调查,这并不总是正确的)
在 5.0.1 模拟器上一切正常(我没有要测试的设备)。我的build.gradle 文件相当长,但看起来像这样:
apply plugin: 'com.android.application'
apply plugin: 'android-apt'
def AAVersion = "2.7.1"
android {
compileSdkVersion 19
buildToolsVersion "21.1.1"
defaultConfig {
applicationId "com.myapp.android"
minSdkVersion 8
targetSdkVersion 19
multiDexEnabled = true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
packagingOptions {
*snip*
}
}
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.0.0'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4'
}
}
repositories {
maven {
url "https://repo.commonsware.com.s3.amazonaws.com"
}
}
apt {
arguments {
androidManifestFile variant.outputs[0].processResources.manifestFile
resourcePackageName 'com.pact.android'
}
}
dependencies {
*snip compile project(':...') declarations
apt "com.googlecode.androidannotations:androidannotations:$AAVersion"
compile "com.googlecode.androidannotations:androidannotations-api:$AAVersion"
compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'
compile 'com.android.support:support-v4:21.0.3'
compile 'com.google.android.gms:play-services:3.1.36'
*snip many more compile declarations*
compile fileTree(dir: 'libs', include: ['*.jar'])
}
导致麻烦的类的一些例子:
- 在 facebook 库中实现接口的匿名类(作为库项目)
-
Parcelable.CREATOR我的模型中的实现 - 扩展 android.os.Library 的内部类
- 我自己的代码中的内部类
- 在 maven 库中实现接口的类
出了什么问题,我该如何解决?
【问题讨论】:
标签: android android-studio android-gradle-plugin