Saya baru saja beralih ke Android Studio 2.1 dan kesalahan ini muncul ketika mencoba mengompilasi aplikasi yang sebelumnya berfungsi:
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.
Saya telah memperbarui file gradle.build proyek utama untuk memaksa pembuatan kode 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
}
}
Saya juga telah memperbarui modul gradle.build sebagai berikut untuk mengatur versi 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
}
}
Submodul sedang dibangun dengan Maven. Dalam file pom.xml saya juga mencoba memaksa pembuatan kode 1,7.
Saya memahami bahwa saya menggunakan artefak perakitan, yang menggabungkan modul bawahan, tetapi saya tidak mengubah salah satu modul bawahan dan file .jar yang dihasilkan untuk modul berjalan dengan baik terakhir kali saya menyusunnya.
<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>
Pertanyaan saya: 1) Apakah ini masalah Android Studio 2.1? Pernahkah orang lain melihatnya? 2) Dengan asumsi ini adalah kesalahan saya dan karena pesan kesalahan tidak memberikan bantuan dalam menemukan modul yang buruk, apakah ada rekomendasi untuk menemukan kode V52? Saya tidak bisa begitu saja menghilangkan pustaka tanpa merusak sejumlah besar kode. Bisakah seseorang memeriksa file .jar untuk menemukan revisi kode? Terima kasih sebelumnya. -Hephaestus