Intereting Posts
Что такое Android-версия HTML TextArea? Можем ли мы рисовать линию в холсте андроида между двумя точками, заданными гироскопом? Как исправить INSTALL_PARSE_FAILED_MANIFEST_MALFORMED в приложении для Android Камера не сохраняет изображение после съемки Как получить размер дисплея в дюймах на Android? Как взаимодействовать с BadgeProvider на телефонах Samsung, чтобы добавить счет к значку приложения? Android Как создать фильтр Intent для пользовательского расширения файла, которое НЕ делает его частью выбора для всего, что есть на телефоне Как анимировать один элемент списка слоев Обращайтесь с GoogleFit в фоновом режиме в приложении для Android Нужно ли добавлять app.initialize () во все мои html-файлы в проект cordova / phonegap Попытка создать файл в Android: open failed: EROFS (файловая система только для чтения) Пользовательский палец для поиска в Android Строка, выведенная ниже текста, не отображающая Android MediaPlayer.reset () вызывает onCompletion Преобразование apk в dex

Android, как разместить все мои классы в одном пакете с помощью Proguard

Я разрабатываю SDK, моя среда получила SDK-библиотеку и тестовый проект, который его использует.

Я хочу защитить свой библиотечный код от пользователей моей библиотеки и там, где мне нужно обфускацию, но просто это.

Поэтому в Android Studio в моем модуле библиотеки в файле proguard-rules.pro я добавил следующий скрипт:

-dontpreverify -optimizations !code/simplification/arithmetic -keep class !com.example.**{ *; } -keep public class com.example.sdk.Example{*;} -keep public class com.example.sdk.IExampleCallback{*;} -keep public class com.example.sdk.ui.ExampleActivity -dontwarn android.util.Log -repackageclasses 'com.example.security' -allowaccessmodification 

Классы становятся запутанными, но их пакет не изменяется. Я подвел Эрика Лафортунэ (автора Proguard) предложение добавить allowaccessmodification , но это не помогло. Я также пытаюсь использовать flattenpackagehierarchy , но это не повлияло.

Помогите мне, как разместить все мои классы в одном пакете?

Solutions Collecting From Web of "Android, как разместить все мои классы в одном пакете с помощью Proguard"

Решили: добавив эти строки, он выполнил задание

 -useuniqueclassmembernames -keeppackagenames doNotKeepAThing 

Это мой полный скрипт

 -optimizationpasses 30 -mergeinterfacesaggressively -dontpreverify -optimizations !code/simplification/arithmetic -repackageclasses 'com.example' -allowaccessmodification -useuniqueclassmembernames -keeppackagenames doNotKeepAThing -keep class !com.example.**{ *; } -keep public class com.sdk.example{ *; } -keep public class com.sdk.IExampleCallback{ *; } -keepclasseswithmembernames public class com.sdk.ui.activity.ExampleActivity{ public <methods>; protected <methods>; } -keepclasseswithmembernames public class com.example.sdk.ExampleReciever{ public <methods>; } -assumenosideeffects class android.util.Log { public static boolean isLoggable(java.lang.String, int); public static int v(...); public static int i(...); public static int w(...); public static int d(...); public static int e(...); }