2016-08-08 2 views
0

Я разрабатываю Android-библиотеку. Когда мой клиент (разработчик приложения) применил мой файл Jar, появится сообщение об ошибке. Сборка нормальная работа, но когда я запускаю приложение (playButton) в Android Studio, это происходит.
Сообщение об ошибке показано ниже:
Выполнение не выполнено для задачи ': app: transformClassesWithMultidexlistForDebug'.Multidex transformClassesWithMultidexlistForDebug Failed

java.io.IOException: Невозможно прочитать [/ Users/VSSCP_KYOSEON/Документы/Работа/Android/A/B/приложение/сборки/промежуточные/трансформирует/jarMerging/отлаживать/банки/1/1f/combined.jar] (не может обработать класс [ком/а/б/VSFunctionActivity.class] (Неизвестный тип проверки [88] в стек карты кадр))

Это мой Применение Gradle Код:

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') 

Мой файл Jar - vs_sat_sdk.jar. Он применяется к защитнику.
Я уже применил руководство Android Multidex. https://developer.android.com/tools/building/multidex.html Но я не смог выполнить.

У меня есть нормальная работа положение дел.
1. Я применяю proguard в файле My jar. и Когда minSdkVersion превышает 21, это нормальная работа. Но когда minSdkVersion меньше 21, оно не отображается.
2. Если My jar file не применяет proguard, независимо от minSdkVersion, это нормальная работа.

, пожалуйста, дайте мне знать о вашем решении.

С уважением.

ответ

0

Возможно, файл jar был обработан инструментом, который неправильно обновляет атрибут StackMapFrame.

На самом деле атрибуты StackMapFrame не нужны для разработки Android, поэтому вы можете дать указание ProGuard не создавать его, и это может решить вашу проблему. Добавьте приложению в свою конфигурацию следующее:

-dontpreverify 
+0

Спасибо. Я уже установил -dontpreverify. Но та же проблема возникает. Я исправил эту проблему. После установки -dontoptimize работа прекрасна. –

Смежные вопросы