2015-07-14 2 views
2

Я использую Eclipse для Mac. Когда я хочу экспортировать подписанный apk, я получаю сообщение «Proguard, возвращенное с кодом ошибки 1. См. Консоль».Proguard возвращается с кодом ошибки 1 при подписании apk со многими внешними библиотеками

  • У меня есть эти 2 файла в моей корневой папке проекта: "Proguard-android.txt" и "project.properties"
  • Внутри project.properties у меня есть:

    цель = android- 17 proguard.config = ProGuard-project.txt android.library.reference.1 = ../Google-плей-services_lib android.library.reference.2 = ../FacebookSDK

Среди многих других предупреждений, которые я получаю, когда я пытаюсь создать подписанную APK, я получаю:

com.my.app.va.debug.ConfigureLog4j: can't find referenced class de.mindpipe.android.logging.log4j.LogConfigurator 

com.my.app.va.debug.HockeyAppHelper: can't find referenced class net.hockeyapp.android.ExceptionHandler 

Я уже поставил эти строки внутри «ProGuard-android.txt», но ошибки сохраняются:

-keep public class de.mindpipe.android.logging.** 
-dontwarn de.mindpipe.android.logging.** 
-keep public class net.hockeyapp.** 
-dontwarn net.hockeyapp.** 

Что я могу делать неправильно?

UPDATE: Я изменил имя файла из «Proguard-android.txt» до «Proguard-проекта» и добавил это к моему Proguard, и сообщения об ошибках «ссылка класса» исчезли:

-dontwarn de.mindpipe.android.** 
-keep public class de.mindpipe.android.** 

-dontwarn net.hockeyapp.android.** 
-keep public class net.hockeyapp.android.** 

Neverthless ... Является ли это реальным решением? или, я просто скрываю проблему?

Другие предупреждения по-прежнему сохраняются: имя файла

Warning: com.facebook.widget.UserSettingsFragment: can't find referenced method 'android.support.v4.app.FragmentActivity getActivity()' in class com.facebook.widget.UserSettingsFragment 
Warning: there were 138 unresolved references to program class members. 

ответ

0

ProGuard должен быть определен в project.properties при использовании Eclipse, или в build.gradle при использовании Gradle или Android Studio.

Он обычно содержит proguard.config = $ {sdk.dir} /tools/proguard/proguard-android.txt:proguard-project.txt.

Вы должны также включать в себя следующее:

-keep class android.support.v4.app.** { *; } 
-keep interface android.support.v4.app.** { *; } 

Больше официальной информации на http://developer.android.com/tools/help/proguard.html.

Некоторые другие соответствующие обсуждения по стеклу: How to config my proguard-project.txt file to remove just Logs и How to automatically generate proguard-android.txt?