Обфускание файлов .aar

Я создал файл .aar (содержащий ресурсы и чертежи) проекта библиотеки Android, используя

./gradlew assemble 

Я включил обфускацию, установив minify == true

 buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } 

Однако, когда я запускаю указанную команду gradle с minify enabled = true, я получаю java.io.IOException: The output jar is empty. Did you specify the proper '-keep' options? java.io.IOException: The output jar is empty. Did you specify the proper '-keep' options?

Как эта ошибка указывает на то, как я могу запутать библиотечный файл .aar?

С наилучшими пожеланиями

Solutions Collecting From Web of "Обфускание файлов .aar"

Proguard разрезает неиспользуемые классы. Библиотеки являются автономными продуктами и имеют некоторые конкретные точки входа, которые не должны быть обмануты. Поэтому вам нужно добавить правила, чтобы сохранить эти точки входа. Правила выглядят так:

 -keep class packagename {public *;} 

Два предложения:

  1. Убедитесь, что этот файл существует в библиотечном модуле: proguard-rules.pro.
  2. Попробуйте запустить «./gradlew: mylib: assembleRelease» с заменой «mylib» на имя вашего библиотечного модуля.
  1. Скопируйте файл library.pro в проект библиотеки из этого места:
     ...\android-sdk\tools\proguard\examples 
  2. Прокомментируйте эти строки при создании из Android Studio, вероятно, это нужно сохранить / обновить при создании из командной строки:
     -injars in.jar -outjars out.jar -libraryjars /lib/rt.jar 
  3. Обновите файл build.gradle библиотечном проекте, чтобы использовать library.pro :

     release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'library.pro' } 
  4. Синхронизируйте и создайте проект, и теперь он должен сгенерировать запутанный файл AAR.