मैंने अभी 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.build फ़ाइल को जावा 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.build को भी अद्यतन किया था:
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
}
}
मावेन के साथ बनाया जा रहा है। 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) क्या यह एक एंड्रॉइड स्टूडियो 2.1 समस्या है? क्या दूसरों ने इसे देखा है? 2) यह मानते हुए कि यह मेरी त्रुटि है और चूंकि त्रुटि संदेश खराब मॉड्यूल को खोजने में कोई मदद नहीं करता है, क्या V52 कोड खोजने के लिए कोई सिफारिशें हैं? मैं बड़ी मात्रा में कोड को तोड़े बिना पुस्तकालयों को छोड़ नहीं सकता। क्या कोई कोड संशोधन खोजने के लिए .jar फ़ाइल का निरीक्षण कर सकता है? अग्रिम में धन्यवाद। -Hephaestus