2017-02-10 2 views
5

У меня есть андроид проект в Android Studio 2.3.0 beta4, который зависит от проекта библиотеки CoolLib.(Дублировать запись на молнии [coolLib.jar: {} упак /BuildConfig.class]))

CoolLib имеет свой источник в банке файл coolLib.jar в ЛИЭС папку. описание товара coolLib.jar содержит файл {pkg} /BuildConfig.class.

Когда я пытаюсь создать и запустить проект в устройстве/эмуляторе в Android API-22 +, он работает отлично, но когда я пытаюсь сделать то же самое на устройстве/эмуляторе в API VERSION < 22, Android Studio не удается строить с Exception--

Внимание: Исключение при обработке задач java.io.IOException: Невозможно записать [D: \ AndroidStudioProjects \ CoolProject \ приложение \ построить \ интермедиатов \ трансформирует \ ProGuard \ отлаживать \ jars \ 3 \ 1f \ main.jar] (Невозможно прочитать [D: \ AndroidStudioProjects \ CoolProject \ CoolLib \ build \ intermediates \ bundles \ default \ libs \ coolLib.jar (;;;;;;; **. class)] (Duplicate zip entry [coolLib.jar: {pkg} /BuildConfig.class])) : Приложение: transformClassesAndResourcesWithProguardForDebug FAILED

build.gradle проекта содержит следующие версии поддержки Lib и т.д .--

ext { 
supportLibVer = '25.1.1' 
playServiceVer = '10.0.1' 

buildToolsVer = "25.0.2" 

compileSdkVer = 25 
targetSdkVer = 25 
minSdkVer = 16 
} 


dependencies { 
compile files('libs/FLurry_3.2.2.jar') 
compile files('libs/jxl-2.6.12.jar') 

compile project(':CoolLib') 

compile files('libs/gcm.jar') 
compile "com.google.android.gms:play-services-ads:$playServiceVer" 
compile "com.android.support:appcompat-v7:$supportLibVer" 
compile "com.android.support:design:$supportLibVer" 
compile "com.android.support:cardview-v7:$supportLibVer" 
compile "com.android.support:support-v13:$supportLibVer" 
compile 'com.github.bumptech.glide:glide:3.7.0' 
} 
+0

Считается, что Duplicate zip entry [coolLib.jar: {pkg} /BuildConfig.class] опубликовать полный файл ранга –

+0

, какую часть файла вы хотите показать. –

+0

приложение: gradle в основном зависимости –

ответ

2

Ok, я получил решение.

Why-

Я сравнил этапы сборки в Gradle консоли на API22 (сборка OK) и API16 (сборка не получится). В API22 консоль указана

+ Instant Run: Proguard не совместим с мгновенным запуском. Она была отключена для отладки

+ Instant Run: Shrinker ресурсов автоматически отключается для отладки

ой сборка прошла успешно. Когда я отключил InstantRun, он также вышел из строя на API22.

Reason-

Проблема заключалась в конфигурации ProGuard. BuildConfig.class из coolLib.jar был определен храниться в Proguard-project.txt, поэтому он держал все .class файлов в этом пакете, но BuildConfig.class должны быть изменен на построить время в соответствии с Основным проектом.

решение-

Я удалил эту -keep заявление, и он работает как шарм.

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