签署 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 运行时错误

打开相机android时出现UnsupportedOperationException错误

当我尝试运行应用程序时出现 Android Studio 错误

尝试在 Meteor 中启动 IOS/Android 应用程序时出现“运行两个 Meteor 副本...”错误