Android 将字节码转换为 dex 时出错:原因:Dex 无法解析版本 52 字节码
Android Error converting bytecode to dex: Cause: Dex cannot parse version 52 byte code
我使用 samsung knox sdk 并更新 knox 版本 (2.7.1)。在尝试编译我的应用程序时出现此错误。
错误详情:
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.
...while parsing
android/app/enterprise/knoxcustom/CustomDeviceManager.class
我的gradle
apply plugin: 'com.android.model.application'
model {
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
minSdkVersion.apiLevel 14
targetSdkVersion.apiLevel 25
versionCode 14
versionName "2.0.14"
multiDexEnabled true
}
compileOptions.with {
sourceCompatibility = JavaVersion.VERSION_1_7
targetCompatibility = JavaVersion.VERSION_1_7
}
ndk {
moduleName "samsung_custom"
.....
}
buildTypes {
release {
minifyEnabled false
signingConfig = $("android.signingConfigs.sign")
proguardFiles.add(file('proguard-android.txt'))
proguardFiles.add(file('proguard-rules.txt'))
}
debug {
signingConfig = $("android.signingConfigs.sign")
}
}
productFlavors {
create("pro") {
applicationId = "com.xxxxxx"
signingConfig = $("android.signingConfigs.sign")
ndk.abiFilters.add("armeabi-v7a")
}
create("basic") {
applicationId = "com.xxxxx"
signingConfig = $("android.signingConfigs.sign")
ndk.abiFilters.add("armeabi-v7a")
}
}
}
/*
adroid.sourceSets {
main {
aidl.srcDirs = ['src/main/java']
}
}
*/
android.lintOptions {
checkReleaseBuilds false
abortOnError false
}
android.packagingOptions {
pickFirst 'META-INF/services/javax.annotation.processing.Processor'
exclude 'META-INF/DEPENDENCIES.txt'
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/dependencies.txt'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/LICENSE'
exclude 'META-INF/license.txt'
exclude 'META-INF/LGPL2.1'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/notice.txt'
}
android.dexOptions {
incremental true
javaMaxHeapSize "4g"
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:25.2.0'
compile 'com.android.support:design:25.2.0'
compile 'com.android.support:cardview-v7:25.2.0'
compile 'com.jakewharton:butterknife:7.0.1'
compile 'joda-time:joda-time:2.9.4'
compile 'com.google.android.gms:play-services:10.2.0'
compile 'com.google.android.gms:play-services-gcm:10.2.0'
compile 'com.google.android.gms:play-services-location:10.2.0'
compile 'com.google.android.gms:play-services-plus:10.2.0'
compile(
[group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: '2.7.3'],
[group: 'com.fasterxml.jackson.core', name: 'jackson-annotations', version: '2.7.3'],
[group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.7.3']
)
compile 'com.squareup.retrofit2:converter-jackson:2.0.0'
compile 'com.squareup.retrofit2:retrofit:2.0.2'
// compile'com.squareup.retrofit2:converter-jackson:2.0.0'
// compile 'com.squareup.retrofit:converter-jackson:1.9.0'
compile 'com.squareup.okhttp3:okhttp:3.3.1'
compile 'com.github.johnkil.android-appmsg:appmsg:1.2.0'
compile 'me.zhanghai.android.materialprogressbar:library:1.1.6'
compile('com.github.afollestad.material-dialogs:core:0.8.5.8@aar') {
transitive = true
}
compile 'com.github.nisrulz:easydeviceinfo:1.1.9'
compile 'com.android.support:multidex:1.0.1'
compile project(':projects:wifiConnecter')
compile project(':projects:knoxActivator')
provided files('libs/cdm.jar')
provided files('libs/edm.jar')
provided files('libs/knox.jar')
provided files('libs/license.jar')
provided files('libs/rc.jar')
}
我添加了 compileOptions 但再次出现异常。
你能帮帮我吗?
你变了
compileOptions.with {
sourceCompatibility = JavaVersion.VERSION_1_7
targetCompatibility = JavaVersion.VERSION_1_7
}
至
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
我使用 samsung knox sdk 并更新 knox 版本 (2.7.1)。在尝试编译我的应用程序时出现此错误。
错误详情:
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. ...while parsing android/app/enterprise/knoxcustom/CustomDeviceManager.class
我的gradle
apply plugin: 'com.android.model.application'
model {
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
minSdkVersion.apiLevel 14
targetSdkVersion.apiLevel 25
versionCode 14
versionName "2.0.14"
multiDexEnabled true
}
compileOptions.with {
sourceCompatibility = JavaVersion.VERSION_1_7
targetCompatibility = JavaVersion.VERSION_1_7
}
ndk {
moduleName "samsung_custom"
.....
}
buildTypes {
release {
minifyEnabled false
signingConfig = $("android.signingConfigs.sign")
proguardFiles.add(file('proguard-android.txt'))
proguardFiles.add(file('proguard-rules.txt'))
}
debug {
signingConfig = $("android.signingConfigs.sign")
}
}
productFlavors {
create("pro") {
applicationId = "com.xxxxxx"
signingConfig = $("android.signingConfigs.sign")
ndk.abiFilters.add("armeabi-v7a")
}
create("basic") {
applicationId = "com.xxxxx"
signingConfig = $("android.signingConfigs.sign")
ndk.abiFilters.add("armeabi-v7a")
}
}
}
/*
adroid.sourceSets {
main {
aidl.srcDirs = ['src/main/java']
}
}
*/
android.lintOptions {
checkReleaseBuilds false
abortOnError false
}
android.packagingOptions {
pickFirst 'META-INF/services/javax.annotation.processing.Processor'
exclude 'META-INF/DEPENDENCIES.txt'
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/dependencies.txt'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/LICENSE'
exclude 'META-INF/license.txt'
exclude 'META-INF/LGPL2.1'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/notice.txt'
}
android.dexOptions {
incremental true
javaMaxHeapSize "4g"
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:25.2.0'
compile 'com.android.support:design:25.2.0'
compile 'com.android.support:cardview-v7:25.2.0'
compile 'com.jakewharton:butterknife:7.0.1'
compile 'joda-time:joda-time:2.9.4'
compile 'com.google.android.gms:play-services:10.2.0'
compile 'com.google.android.gms:play-services-gcm:10.2.0'
compile 'com.google.android.gms:play-services-location:10.2.0'
compile 'com.google.android.gms:play-services-plus:10.2.0'
compile(
[group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: '2.7.3'],
[group: 'com.fasterxml.jackson.core', name: 'jackson-annotations', version: '2.7.3'],
[group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.7.3']
)
compile 'com.squareup.retrofit2:converter-jackson:2.0.0'
compile 'com.squareup.retrofit2:retrofit:2.0.2'
// compile'com.squareup.retrofit2:converter-jackson:2.0.0'
// compile 'com.squareup.retrofit:converter-jackson:1.9.0'
compile 'com.squareup.okhttp3:okhttp:3.3.1'
compile 'com.github.johnkil.android-appmsg:appmsg:1.2.0'
compile 'me.zhanghai.android.materialprogressbar:library:1.1.6'
compile('com.github.afollestad.material-dialogs:core:0.8.5.8@aar') {
transitive = true
}
compile 'com.github.nisrulz:easydeviceinfo:1.1.9'
compile 'com.android.support:multidex:1.0.1'
compile project(':projects:wifiConnecter')
compile project(':projects:knoxActivator')
provided files('libs/cdm.jar')
provided files('libs/edm.jar')
provided files('libs/knox.jar')
provided files('libs/license.jar')
provided files('libs/rc.jar')
}
我添加了 compileOptions 但再次出现异常。 你能帮帮我吗?
你变了
compileOptions.with {
sourceCompatibility = JavaVersion.VERSION_1_7
targetCompatibility = JavaVersion.VERSION_1_7
}
至
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}