java错误转换
这是我的身材。格拉德尔
apply plugin: 'com.安卓.application'
安卓 {
compileSdkVersion 25
buildToolsVersion "27.0.2"
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
defaultConfig {
applicationId "com.example.user2.trafficmap"
minSdkVersion 15
targetSdkVersion 25
versionCode 1
versionName "1.1"
testInstrumentationRunner "安卓.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-安卓.txt'), 'proguard-rules.pro'
}
}
}
repositories {
mavenCentral()
maven { url "https://maven.google.com" }
}
dependencies {
sourceCompatibility = 1.7
targetCompatibility = 1.7
compile fileTree(include: ['*.jar'], dir: 'libs')
安卓TestCompile('com.安卓.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.安卓.support', module: 'support-annotations'
})
compile group: 'io.nlopez.smartlocation', name: 'library', version: '3.3.1'
compile 'com.安卓.support:appcompat-v7:25.3.1'
compile 'com.google.安卓.gms:play-services-location:11.4.2'
compile 'com.google.安卓.gms:play-services-base:11.4.2'
compile 'com.google.安卓.gms:play-services-maps:11.4.2'
compile 'com.github.arimorty:floatingsearchview:2.1.1'
compile 'com.安卓.support.constraint:constraint-layout:1.0.2'
compile ('com.schibstedspain.安卓:leku:3.6.2',{
targetCompatibility = '1.8'
sourceCompatibility = '1.8'
})
testCompile 'junit:junit:4.12'
}
我得到了这个错误
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.
我想将leku库添加到我的项目中,我遇到了这个问题 如何将目标和源兼容性添加到我的子模块
# 1 楼答案
备选案文1
移动
在
dependencies
之前备选案文2
使用Android studio 3和java 8。更改构建工具
及
# 2 楼答案
手动将应用程序本身设置为在java 7上运行时,无法添加使用source compat设置为java 8的库。意思是:
更改:
请注意,如果库本身是用Java8编译的,那么这很可能不起作用
或者,使用Java 8编译应用程序:
如果您使用的是Android Studio<;你必须使用杰克。如果您使用的是Android Studio>;=3、不要用杰克。它是不需要的,而且不推荐使用
至于错误本身:
字节码版本与Java版本相关
'com.schibstedspain.android:leku:3.6.2'
依赖项即用Java 7而不是Java 8编译库
由于这可能是由导入中的targetCompatibility部分引起的,因此将其更改为
1.7
应该可以解决这一问题。或者,在应用程序上使用Java8进行编译这样做不会丢失任何平台,它在(AFAIK)所有版本上都受支持。尽管有一些特定的Java8API,但它们只在Android的更高版本中可用。例如,在API 24之前未添加的流