2015-06-01 2 views
3

Я пытаюсь конфиг в ProGuard в андроиде студии для моей сборки релиза, но я получаю сообщение об ошибке и предупреждение ниже:proguard build в Android Studio. Получение ошибки

Ошибки: Не удалось завершить выполнение задачи по «: myAccount_S: proguardRelease».

java.io.IOException: Can't write [C:\Users\mgi\AndroidStudioProjects\MyProjects\myAccount_S\build\intermediates\classes-proguard\release\classes.jar] (Can't read [C:\Users\mgi\AndroidStudioProjects\MyAccountProjects\myAccount_S\build\intermediates\exploded-aar\MyAccountProjects\myLibrary\unspecified\libs\PushTracker-1.3.0-tracfone.jar(;;;;;;!META-INF/MANIFEST.MF)] (Duplicate zip entry [PushTracker-1.3.0-tracfone.jar:com/mgage/push/tracker/PushManager$1.class])) :myAccount_S:proguardRelease FAILED Warning:can't write resource [META-INF/NOTICE] (Duplicate zip entry [jackson-databind-2.2.3.jar:META-INF/NOTICE]) Warning:can't write resource [META-INF/LICENSE] (Duplicate zip entry [jackson-databind-2.2.3.jar:META-INF/LICENSE])

Gradle:

buildTypes { 
    release { 
     minifyEnabled true 
     proguardFile getDefaultProguardFile('proguard-android.txt') 
    } 

} 



packagingOptions { 
    exclude 'META-INF/DEPENDENCIES' 
    exclude 'META-INF/NOTICE' 
    exclude 'META-INF/LICENSE' 
    exclude 'META-INF/LICENSE.txt' 
    exclude 'META-INF/NOTICE.txt' 
    exclude 'META-INF/MANIFEST' 
} 

зависимостей {

compile project(':facebookSDK') 
compile 'com.android.support:support-v4:19.1.0' 
compile 'com.android.support:appcompat-v7:19.1.0' 
compile 'com.google.android.gms:play-services:6.5.87' 
compile files('libs/BxLibrary-1.4.14.jar') 
compile files('libs/commons-io-1.3.2.jar') 
compile files('libs/jackson-annotations-2.2.3.jar') 
compile files('libs/jackson-core-2.2.3.jar') 
compile files('libs/jackson-databind-2.2.3.jar') 
compile files('libs/libGoogleAnalyticsServices.jar') 
compile files('libs/PushTracker-1.3.0.jar') 
compile files('libs/robospice-1.4.14.jar') 
compile files('libs/robospice-cache-1.4.14.jar') 

}

+0

Пожалуйста, напишите файл build.gradle. Кажется, две из ваших зависимостей объявляют библиотеку Джексона, и это вызывает ошибку. –

+0

возможно дубликат http://stackoverflow.com/questions/20673625/android-gradle-plugin-0-7-0-duplicate-files-during-packaging-of-apk – pyus13

+0

buildTypes { выпуска { minifyEnabled правда proguardFile getDefaultProguardFile ('ProGuard-android.txt') } } packagingOptions { исключающие 'МЕТА-INF/зависимостями' исключить 'МЕТА-INF/УВЕДОМЛЕНИЕ' ' исключить META-INF/License' исключить «META-INF/LICENSE.txt» исключить «META-INF/NOTICE.txt» e xclude 'META-INF/MANIFEST' } – user3152367

ответ

-1

Похоже, что проблема вызвана противоречивыми ЛИЦЕНЗИИ, ВНИМАНИЕ и другие файлы. Вместо того, чтобы исключить, проверьте, если что-то подобное для устранения проблемы:

packagingOptions { 
    pickFirst 'META-INF/NOTICE' 
    pickFirst 'META-INF/LICENSE' 
    pickFirst 'META-INF/MANIFEST' 
    pickFirst 'META-INF/LICENSE.txt' 
    pickFirst 'META-INF/NOTICE.txt' 
    pickFirst 'META-INF/MANIFEST' 
} 
+0

Я могу сгенерировать apk сейчас, но это неглавное apk. как я могу узнать, что я правильно выполнил proguard? Я никогда раньше не пользовался. Я получаю уведомление, что apk успешно сгенерирован. – user3152367

+0

Это зависит от того, что должен был делать ваш прогард, но, как правило, уменьшенный размер APK является хорошим показателем. Другим признаком является наличие файлов, созданных proguard, таких как aapt_rules.txt (в yourprojectdir/build/intermediates/proguard-rules/your-build-variant Вы также можете найти другие решения здесь: http://stackoverflow.com/ вопросы/10190907/how-to-tell-if-proguard-has-done-its-job – dkarmazi

+0

Это то, что я сделал для использования файла aapt_rules.txt, и я не делал никаких изменений в файле aapt_rules.txt, но генерировал невыровненные apk и I я не могу установить его на устройство. Не могу установить – user3152367

1

Это может произойти только тогда, когда ДЖЕКСОН-DataBind-2.2.3.jar используется более чем на 1 проект. Единственное разрешение - либо использовать центральный репозиторий maven, либо создать третий проект и использовать его в качестве зависимости в проектах с использованием jackson-databind-2.2.3.jar ранее.

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