я столкнулся действительно странные проблемы, в течение нескольких дней теперь ...Proguard игнорирует конфигурационный файл библиотеки
У меня есть приложение Gradle с двумя модулями, один основной модуль и один модуль библиотеки.
- В обоих модулях я объявил proguard-rules.pro путь к файлу, который является правильным
- В обоих .gradle файлах я minifyEnabled правда
вот первая проблема: даже если minifyEnabled ложно в библиотеке, он становится запутанным. он не имеет никакого эффекта и, похоже, зависит от настроек основного модуля. Я использую proguard через некоторое время, и я никогда не испытывал такого поведения вообще.
Кроме того, proguard-rules.pro библиотеки, кажется, полностью игнорируется. Неважно, что я объявляю там, он не используется, и результат всегда один и тот же (всегда декомпилированный для просмотра результата). Он запутывается настройками по умолчанию.
Я использовал неправильное имя ProGuard файла, чтобы увидеть, если файл даже потрогать, и действительно есть ошибки с неправильным названием, и это также complaines о синтаксических ошибках в файле Proguard ...
I не знаю, связано ли это с обновлением Android Studio, так как он также рекомендовал мне использовать «minifyEnabled» вместо «runProguard».
Как я могу управлять proguard, чтобы использовать proguard-rules.pro библиотеки тоже?
Edit:
Я сделал образец проект для уточнения моей проблемы
ProGuard конфигурация из моей библиотеки
Gradle моей библиотеки :
И, наконец, Я всегда получаю. Это не имеет значения, что я исключаю/включить в Proguard конфигурации
Как вы можете видеть, правила Proguard работают достаточно хорошо на основном модуле. Он делает то, что должен. Но он всегда полностью запутывает мою библиотеку на a.a ....
Он также полностью удалил активность Библиотеки, которые не должны произойти на всех
Привет Эрик, в первую очередь поблагодарить Вас за быстрый ответ , Я полностью вынул параметр minifyEnabled в библиотеке сейчас, и он действительно решил «Выходной бачок пуст», о котором я упоминал в письме, но proguard игнорирует конфигурацию proguard anyways –
Действительно, я пропустил вещь consumerProguardFiles. Теперь он работает, спасибо вам большое :) –
'customerProguardFiles' должен быть указан в' defaultConfig', а не 'buildTypes/release', так что он работает, если приложение-разработчик потребления в обоих режимах отладки и выпуска (например, чтобы избежать 65k dex метод предел). – ashughes