我正在尝试构建我的项目并得到这个奇怪的错误(导致所有在以前的AS版本中完美运行)
Error:Error converting bytecode to dex:
Cause: Dex cannot parse version 52 byte code.
This is caused by library dependencies that have been compiled using Java 8 or above.
If you are using the 'java' gradle plugin in a library submodule add
targetCompatibility = '1.7'
sourceCompatibility = '1.7'
to that submodule's build.gradle file.
我明白问题是(正如错误告诉我的)我的一些依赖项是用java ver.8编译的,但是我怎么知道它们中的哪一个?
这是我的build.gradle
apply plugin: 'com.android.application'
apply plugin: 'com.neenbedankt.android-apt'
android {
compileSdkVersion 23
buildToolsVersion "23.0.3"
defaultConfig {
applicationId "com.android.app.mysuperapp"
minSdkVersion 15
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
sourceSets {
androidTest {
setRoot('src/test')
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
sourceCompatibility = 1.7
targetCompatibility = 1.7
//<!-- TestFrameWork
testCompile 'org.robolectric:robolectric:3.1-rc1'
androidTestCompile 'junit:junit:4.12'
//
compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.google.code.gson:gson:2.6.2'
compile 'me.dm7.barcodescanner:zxing:1.8.4'
//----Materal design libs
compile 'com.github.rey5137:material:1.2.2'
compile 'com.github.navasmdc:MaterialDesign:1.5@aar'
compile 'com.rengwuxian.materialedittext:library:2.1.4'
compile('com.github.ganfra:material-spinner:1.1.0') {
exclude group: 'com.nineoldandroids', module: 'library'
exclude group: 'com.android.support', module: 'appcompat-v7'
}
//<--
compile 'se.emilsjolander:stickylistheaders:2.7.0'
compile('com.thoughtworks.xstream:xstream:1.4.8') {
exclude group: 'xmlpull', module: 'xmlpull'
}
//----LogBack&SLF4J
compile 'org.slf4j:slf4j-api:1.7.21'
compile 'com.github.tony19:logback-android-core:1.1.1-5'
compile('com.github.tony19:logback-android-classic:1.1.1-5') {
// workaround issue #73
exclude group: 'com.google.android', module: 'android'
}
compile 'com.jakewharton:butterknife:8.0.1'
apt 'com.jakewharton:butterknife-compiler:8.0.1'
}
我在Google上搜索了类似的问题(例如one或this),但添加这些行来构建gradle
dependencies {
sourceCompatibility = 1.7
targetCompatibility = 1.7
}
没有解决我的问题。我很困难,我需要别人的帮助。提前谢谢。
答案 0 :(得分:1)
您的问题是编译('com.thoughtworks.xstream:xstream:1.4.8'),这取决于Java 8
版本 1.4.7 不依赖于Java8,所以如果您能使用1.4.7,则修复非常简单。