我刚切换到Android Studio 2.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.
我已经更新了主项目的gradle。生成文件以强制生成Java 1.7代码:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.1.0'
apply plugin: 'java'
sourceCompatibility = 1.7
targetCompatibility = 1.7
}
}
我还更新了gradle模块。按如下方式构建以设置java版本:
android {
compileSdkVersion 19
buildToolsVersion "23.0.2"
defaultConfig {
applicationId "com.abc.def"
minSdkVersion 19
targetSdkVersion 19
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
}
正在使用Maven构建子模块。在pom.xml文件中,我还尝试强制生成1.7代码。
我知道我正在使用一个组装工件,它包含了从属模块,但我没有更改任何从属模块,并且上次编译时该模块的结果. jar文件运行良好。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId> <!-- maven-compiler-plugin -->
<version>2.6</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id> <!-- this is used for inheritance merges -->
<phase>package</phase> <!-- bind to the packaging phase -->
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
我的问题:1)这是Android Studio 2.1的问题吗?其他人看到了吗?2) 假设这是我的错误,并且由于错误消息对查找错误模块没有帮助,那么对于查找V52代码有什么建议吗?我不能在不破坏大量代码的情况下省略这些库。可以检查吗。jar文件以查找代码修订版?提前谢谢-赫菲斯托斯
如果您使用组织。jetbrains:注释:15和retrolambda插件,然后删除行编译组织。jetbrains:注解:15.0,来自您的构建。渐变,错误将消失。这对我有用。
如果您有一个带有非Android特定java库的模块,这应该可以使用:<代码>应用插件:'java'
将其放在build.gradle文件的顶部,然后重建。
apply plugin: 'java'
apply plugin: 'jacoco'
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.11'
sourceCompatibility = 1.7
targetCompatibility = 1.7
}
只需将java 1.8与Android Studio 3.0配合使用,并为我设置以下工作:它似乎需要最新的构建工具
classpath 'com.android.tools.build:gradle:3.0.0'
和
android {
compileSdkVersion 26
buildToolsVersion "26.0.1"
defaultConfig {
...
//jackOptions { // DEPRECATED
//enabled true
//}
}
dexOptions {
incremental true
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
每当我试图编译时,都会出现以下错误- 错误:将字节码转换为dex时出错:原因:dex无法解析版本52字节代码。这是由使用Java8或更高版本编译的库依赖项引起的。如果您在库子模块中使用“java”gradle插件,请将目标兼容性=“1.7”源兼容性=“1.7”添加到该子模块的build.gradle文件中。 我的build.gradle档案如下- } 我尝试了以下链接中提供的所有解决方案,但没有任
我使用samsung knox sdk,正在更新knox版本(2.7.1)。这个错误在尝试编译我的应用程序时出现。 错误详细信息: 错误:将字节码转换为Dex时出错:原因:Dex无法解析版本52字节码。这是由使用Java8或更高版本编译的库依赖项造成的。如果在库子模块中使用'java'gradle插件,请将targetCompatibility='1.7'sourceCompatibility='
项目清理和重建工作成功,但如果我想运行应用程序,我得到这样的错误。 错误:将字节码转换为Dex时出错:原因:Dex无法解析版本52字节码。这是由使用Java8或更高版本编译的库依赖项造成的。如果在库子模块中使用'java'gradle插件,请将targetCompatibility='1.7'sourceCompatibility='1.7'添加到该子模块的build.gradle文件中。 错误:
我正在尝试构建我的项目,并得到这个奇怪的错误(因为所有这些都在以前的AS版本中工作得很好) 我知道问题是(正如错误告诉我的那样)我的一些依赖项是用java版本编译的。但是我怎么知道是哪一个呢? 这是我的身材。格拉德尔 我已经在SO上搜索了很多类似的问题(比如这个或这个),但是添加这些行来构建gradle 没有解决我的问题。我很困,需要有人帮助。提前谢谢。
我刚刚安装了android studio,但gradle show的错误如下。插件版本为7.0,Gradle版本为7.0.2。此外,我试图下载到另一个gradle版本,但仍然无法完成构建,它显示了相同的错误。 配置根项目我的应用程序时出现问题。 无法解析配置“: classpath”的所有工件。无法解析com.android.tools.build: gradle: 7.0.0。项目要求:
问题内容: 好的,现在我可以解析空间了,这是我以前的问题。现在我的解析器几乎可以使用了,但是有一个我无法弄清的缺陷。 我能够在段(参见代码)和管道之间的数据之后检索数据。我无法到达的是一个级别并检索包含在管道之间并以^分隔的数据。 例如。 但是,我当前的输出将是 我收到@后面带有各种ID的异常1 [Ljava.lang.String; @ 1786e64 下面给出的注释代码造成了问题。 码: 请指