2016-08-08 45 views
0

Ich entwickle Android-Bibliothek. Wenn mein Client (Anwendungsentwickler) meine Jar-Datei angewendet hat, wird eine Fehlermeldung angezeigt. Build ist normal funktioniert, aber wenn ich (PlayButton) App in Android Studio ausführen, ist es aufgetreten.
Die folgende Fehlermeldung wird angezeigt:
Ausführung fehlgeschlagen für Task ': app: transformClassesWithMultidexlistForDebug'.Multiidex transformClassesWithMultidexlistForDebug Fehler

java.io.IOException: Kann nicht lesen [/ Users/VSSCP_KYOSEON/Dokumente/Arbeit/Android/A/B/app/build/Intermediate/transformiert/jarMerging/debug/Gläser/1/1f/combined.jar] (keine Prozessklasse [com/a/b/VSFunctionActivity.class] (Unbekannt Prüfungstyp [88] in Stapelkartenrahmen))

Dies ist meine Anwendung Gradle Code:

apply plugin: 'com.android.application' 

android { 
compileSdkVersion 23 
buildToolsVersion '24.0.1' 

defaultConfig { 
    applicationId "com.a.b" 
    minSdkVersion 18 
    targetSdkVersion 23 
    versionCode 1 
    versionName "1.0" 
    multiDexEnabled true 
} 

compileOptions { 
    sourceCompatibility JavaVersion.VERSION_1_6 
    targetCompatibility JavaVersion.VERSION_1_6 
} 

dexOptions { 
    javaMaxHeapSize "4g" //specify the heap size for the dex process 
} 
} 

dependencies { 
compile fileTree(include: ['*.jar'], dir: 'libs') 
testCompile 'junit:junit:4.12' 
compile 'com.android.support:appcompat-v7:23.0.1' 
compile project(':ChartLib') 
compile 'com.google.android.gms:play-services-fitness:8.4.0' 
compile 'com.android.support:multidex:1.0.1' 
compile files('libs/vs_sat_sdk.jar') 

}

Meine Jar-Datei ist vs_sat_sdk.jar. Es wird auf prouard angewendet.
Ich habe bereits Android Multidex Guide angewendet. https://developer.android.com/tools/building/multidex.html Aber ich konnte nicht ausführen.

Ich habe normale Betriebssituation.
1. Ich verwende Proguard in meiner JAR-Datei. und wenn minSdkVersion über 21 ist, ist es normaler Betrieb. Aber wenn minSdkVersion unter 21 ist, wird es als fehlgeschlagen angezeigt.
2. Wenn meine JAR-Datei nicht proguard, unabhängig von minSdkVersion, angewendet wird, ist es normal.

lassen Sie mich bitte über Ihre Lösung wissen.

Grüße.

Antwort

0

Möglicherweise wurde die JAR-Datei von einem Tool verarbeitet, das das StackMapFrame-Attribut nicht korrekt aktualisiert.

Eigentlich werden StackMapFrame-Attribute für die Android-Entwicklung nicht benötigt, so dass Sie ProGuard anweisen könnten, es nicht zu erstellen, und es könnte Ihr Problem lösen. Fügen Sie Ihrer Konfiguration Folgendes hinzu, wenn Sie ProGuard auf Ihre Bibliothek anwenden:

+0

Vielen Dank. Ich habe bereits festgelegt - vorverifizieren. Aber das gleiche Problem tritt auf. Ich habe dieses Problem behoben. Nach dem Einstellen-nicht optimieren, ist die Arbeit in Ordnung. –