Исключите сторонние библиотеки, их класс и подкласс из ProGuard с Android, используя Eclipse IDE.

Получение следующей ошибки при попытке исключить сторонние библиотеки в ProGuard.

Он компилируется, если я добавляю -dontwarn com.ak.systemservice.core.security.FuncManager в proguard-project.txt, но при попытке запуска происходит сбой.

По сути, я хочу НЕ запутывать com.ak.systemservice. core.security.FuncManager в банке или во всей банке и хотите использовать com.ak.systemservice. core.security.FuncManager в моей деятельности. Заранее спасибо.

Вот ошибки:

[2016-01-26 17:00:27 - MyApp] Proguard вернул код ошибки 1. См. консоль

[2016-01-26 17:00:27 - MyApp] Предупреждение: com.ak.systemservice.core.security.FuncManager: не удается найти указанный класс android.os.ServiceManager

[2016-01-26 17:00:27 - MyApp] Предупреждение: com.ak.systemservice.core.security.FuncManager: не удается найти указанный класс android.os.ServiceManager

[2016-01-26 17:00:27 - MyApp] Предупреждение: com.ak.systemservice.core.security.FuncManager: не удается найти ссылочный класс android.security.FuncService$Stub

[2016-01-26 17:00:27 - MyApp] Предупреждение: com.ak.systemservice.core.security.FuncManager: не удается найти ссылочный класс android.security.FuncService$Stub

[2016-01-26 17:00:27 - MyApp] Предупреждение: com.ak.systemservice.core.security.FuncManager: не удается найти ссылочный класс android.security.FuncService

[2016-01-26 17:00:27 - MyApp] Предупреждение: com.ak.systemservice.core.security.FuncManager: не удается найти ссылочный класс android.security.FuncService

[2016-01-26 17:00:27 - MyApp] Предупреждение: com.ak.systemservice.core.security.FuncManager: не удается найти указанный класс com.ak.systemservice.core.security.FuncManager$1

[2016-01-26 17:00:27 - MyApp] Предупреждение: com.ak.systemservice.core.security.FuncManager: не удается найти указанный класс com.ak.systemservice.core.security.FuncManager$1

[2016-01-26 17:00:27 - MyApp] Предупреждение: com.ak.systemservice.core.security.FuncManager: не удается найти ссылочный класс android.security.FuncService

[2016-01-26 17:00:27 - MyApp] Предупреждение: com.ak.systemservice.core.security.FuncManager: не удается найти ссылочный класс android.security.FuncService

[2016-01-26 17:00:27 - MyApp] Предупреждение: com.ak.systemservice.core.security.FuncManager: не удается найти ссылочный класс android.security.FuncService

[2016-01-26 17:00:27 - MyApp] Предупреждение: com.ak.systemservice.core.security.FuncManager: не удается найти ссылочный класс android.security.FuncService

[2016-01-26 17:00:27 - MyApp] Предупреждение: com.ak.systemservice.core.security.FuncManager: не удается найти ссылочный класс android.security.FuncService

[2016-01-26 17:00:27 - MyApp] Предупреждение: com.ak.systemservice.core.security.FuncManager: не удается найти ссылочный класс android.security.FuncService

[2016-01-26 17:00:27 - MyApp] Предупреждение: com.ak.systemservice.core.security.FuncManager: не удается найти ссылочный класс android.security.FuncService

[2016-01-26 17:00:27 - MyApp] Предупреждение: com.ak.systemservice.core.security.FuncManager: не удается найти ссылочный класс android.security.FuncService


person Mobile Developer    schedule 28.01.2016    source источник


Ответы (2)


Вы можете решить эту проблему, избегая минимизации этого класса. Добавьте это в свой файл proguard,

-keep class com.ak.** { *; }
-keep interface com.ak.** { *; }
-keep enum com.ak.** { *; }

Или вы также можете сохранить индивидуальный класс. Так,

-keep class com.ak.systemservice.core.security.FuncManager
person Msp    schedule 28.01.2016
comment
Еще нет! Спасибо за продолжение! Перед тем, как перейти к этому шагу, возникает ошибка обратного вызова JNI, и приложение аварийно завершает работу! Каким-то образом proguard чередует имена методов JNI и вызывает сбой. Как я могу убедиться, что ProGuard не отключает JNI? Как я могу сохранить определенный метод обратного вызова JNI вдали от ProGuard? Спасибо, - person Mobile Developer; 01.02.2016
comment
По умолчанию собственные функции JNI не будут запутаны. Но если вы используете его в своем коде, и ваш код запутывается, это может создать проблемы. Измените приведенный выше код и добавьте его в файл pro guard после включения имени вашего пакета, чтобы предотвратить это. - person Msp; 01.02.2016

Еще нет! Спасибо за продолжение! Перед тем, как перейти к этому шагу, возникает ошибка обратного вызова JNI, и приложение аварийно завершает работу! Каким-то образом proguard чередует имена методов JNI и вызывает сбой. Как я могу убедиться, что ProGuard не отключает JNI? Как я могу сохранить определенный метод обратного вызова JNI вдали от ProGuard?

Спасибо,

person Mobile Developer    schedule 30.01.2016