签署 Android 应用程序时出现错误 Proguard
Posted
技术标签:
【中文标题】签署 Android 应用程序时出现错误 Proguard【英文标题】:Error Proguard when signing Android Aplication 【发布时间】:2015-03-26 22:18:00 【问题描述】:我尝试使用 Proguard 签署我的 android 应用程序,但出现这样的错误
[2015-01-28 12:04:22 - PriestsNDevils-android] Proguard returned with error code 1. See console
[2015-01-28 12:04:22 - PriestsNDevils-android] Warning: com.badlogic.gdx.sqlite.android.AndroidCursor: can't find referenced method 'void log(java.lang.String,java.lang.String,java.lang.Exception)' in class com.badlogic.gdx.Application
[2015-01-28 12:04:22 - PriestsNDevils-android] You should check if you need to specify additional program jars.
[2015-01-28 12:04:22 - PriestsNDevils-android] Warning: there were 1 unresolved references to program class members.
[2015-01-28 12:04:22 - PriestsNDevils-android] Your input classes appear to be inconsistent.
[2015-01-28 12:04:22 - PriestsNDevils-android] You may need to recompile them and try again.
[2015-01-28 12:04:22 - PriestsNDevils-android] Alternatively, you may have to specify the option
[2015-01-28 12:04:22 - PriestsNDevils-android] '-dontskipnonpubliclibraryclassmembers'.
[2015-01-28 12:04:22 - PriestsNDevils-android] java.io.IOException: Please correct the above warnings first.
[2015-01-28 12:04:22 - PriestsNDevils-android] at proguard.Initializer.execute(Initializer.java:321)
[2015-01-28 12:04:22 - PriestsNDevils-android] at proguard.ProGuard.initialize(ProGuard.java:211)
[2015-01-28 12:04:22 - PriestsNDevils-android] at proguard.ProGuard.execute(ProGuard.java:86)
[2015-01-28 12:04:22 - PriestsNDevils-android] at proguard.ProGuard.main(ProGuard.java:492)
我必须做什么?
project.properties
proguard.config=$sdk.dir/tools/proguard/proguard-android.txt:proguard-project.txt
target=android-19
我已经添加了 proguard-android.txt
-dontwarn com.badlogic.gdx.sqlite.android.AndroidCursor.**
-dontwarn **CompatHoneycomb -keep public class * extends android.support.v4.app.Fragment
-dontwarn javax.jdo.** -dontwarn com.google.api.client.googleapis.extensions.android.gms.**
【问题讨论】:
我必须做什么?你必须(必须)学习阅读异常并遵循它,或者至少如何使用谷歌。 参考这里:***.com/questions/11246842/… 我使用 libgdx ,与原生 android java 不同。那么使用 sqlite 的 libgdx proguard 指的是什么?。 【参考方案1】:将以下行添加到您的proguard-android.txt
-dontwarn com.badlogic.gdx.sqlite.android.AndroidCursor.**
【讨论】:
添加 -dontwarn ,如果您想了解更多信息,请阅读此论坛badlogicgames.com/forum/viewtopic.php?f=15&t=15712【参考方案2】:尝试在你的 proguard .cfg 文件末尾添加这一行
-dontwarn **CompatHoneycomb -keep public class * 扩展 android.support.v4.app.Fragment
-dontwarn javax.jdo.** -dontwarn com.google.api.client.googleapis.extensions.android.gms.**
【讨论】:
以上是关于签署 Android 应用程序时出现错误 Proguard的主要内容,如果未能解决你的问题,请参考以下文章
尝试签署 ANDROID 应用程序时出现异常 - “java.lang.SecurityException:Manifest 主要属性的签名文件摘要无效”
Google Play App Signing 在 Play 商店上发布应用程序时出现错误后
打开相机android时出现UnsupportedOperationException错误