我正在使用Eclipse for Mac。 当我想导出一个签名的apk时,我得到一个" Proguard返回错误代码1.请参阅console"错误。
在project.properties里面我有:
目标=机器人-17 proguard.config = proguard的-project.txt android.library.reference.1 = .. /谷歌播放,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.**
我可能做错了什么?
更新 我更改了#34; proguard-android.txt"的文件名。到" proguard-project"并将此添加到我的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 :(得分:0)
如果使用Eclipse,则应在 project.properties 中定义proguard文件名;如果使用Gradle或Android Studio,则应在build.gradle中定义。
它通常包含 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的更多官方信息。
其他一些相关的stackoverflow讨论:How to config my proguard-project.txt file to remove just Logs和How to automatically generate proguard-android.txt?