2015-05-12 2 views
19

В Android-библиотеках на AAR file spec есть файл 'proguard.txt'. Я понимаю, что этот файл объявляет, как библиотека может быть запутана и минимизирована. В моем случае мне нужно сохранить некоторые классы API.Как включить конфигурацию proguard в мою библиотеку Android (AAR)

Как я могу объявить файл proguard.txt библиотеки в библиотеке build.gradle? И будет ли этот файл автоматически считываться при создании приложения (APK), которое использует мою библиотеку?

Я не нашел эту информацию в руководстве пользователя плагинов для Android от Gradle.

+0

Это, кажется, дубликат http://stackoverflow.com/questions/26983248/proguard-ignores-config-file-of-library – kevinpelgrims

+1

@kevinpelgrims Речь идет о распространении файла AAR с встроенная конфигурация proguard для пользователей внешних библиотек, я не ожидаю, что ответ будет таким же, т.е. классы библиотек не будут дважды сокращены в многомодульной сборке. Однако вопросы похожи. –

ответ

34

В вашем закрытии конфигурации файла Gradle укажите свой файл Proguard с consumerProguardFiles вместо proguardFiles. Например:

defaultConfig { 
    consumerProguardFiles 'proguard.txt' 
} 
+4

'customerProguardFiles' должен указываться в' defaultConfig', а не 'buildTypes/release', так что он работает, если приложение-разработчик потребляет в обоих режимах отладки и выпуска (например, чтобы избежать ограничения метода 65k dex). – ashughes

+0

, если вы используете экспериментальный плагин gradle (0.7.2), он вызывает эту ошибку: Причина: org.gradle.api.internal.ExtensibleDynamicObject. – Loebre

+0

Хороший пример build.gradle находится по этой ссылке: https://github.com/artem-zinnatullin/RxJavaProGuardRules/blob/master/rxjava-proguard-rules/build.gradle – ultraon

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