【问题标题】:Does proguard support GCM?proguard 支持 GCM 吗?
【发布时间】:2016-07-13 10:04:40
【问题描述】:

当我尝试使用 proguard 重建应用程序时收到此错误:(我尝试了针对错误 MSB6006 建议的所有解决方案:"java.exe" exited with code 1,但在我的情况下,它似乎与 GCM 有一些冲突)

19>PROGUARD:警告: com.google.android.gms.common.GooglePlayServicesUtil:找不到 引用的方法 'void setLatestEventInfo(android.content.Context,java.lang.CharSequence,java.lang.CharSequence,android.app.PendingIntent)' 在类 android.app.Notification 19>PROGUARD:警告: com.google.android.gms.gcm.zza:找不到引用的方法 'void setLatestEventInfo(android.content.Context,java.lang.CharSequence,java.lang.CharSequence,android.app.PendingIntent)' 在类 android.app.Notification 19> 你应该检查你是否 需要指定额外的程序 jars。 19>PROGUARD:警告:那里 是对程序类成员的 2 个未解决的引用。 19>
您的输入类似乎不一致。 19> 你可以 需要重新编译它们并重试。 19> 或者,你 可能必须指定选项 19>
'-dontskipnonpubliclibraryclassmembers'。 19> java.io.IOException: 请先更正上述警告。 19> 在 proguard.Initializer.execute(Initializer.java:321) 19> 在 proguard.ProGuard.initialize(ProGuard.java:211) 19> 在 proguard.ProGuard.execute(ProGuard.java:86) 19> 在 proguard.ProGuard.main(ProGuard.java:492) 19> 捡起 JAVA_TOOL_OPTIONS:-Dfile.encoding=UTF8 19>C:\Program 文件 (x86)\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(2118,3): 错误 MSB6006:“java.exe”以代码 1 退出。

【问题讨论】:

  • 我使用带有 GCM 的 Proguard(在 Xamarin.Android 项目中)并且没有问题。我会假设它是在您发布的错误中使用setLatestEventInfo,因为这是一种较旧/已弃用的方法(假设您正在使用它并针对较旧的 API)。发布的答案应该会有所帮助。

标签: xamarin google-cloud-messaging proguard


【解决方案1】:

Google GMS 库有时会尝试访问对给定目标 SDK 版本不可用的库方法,并在运行时优雅地处理错误。所以通常需要并且安全地添加这样的内容来忽略此类警告:

-dontwarn com.google.android.gms.**
-dontnote com.google.android.gms.**

这些规则将忽略 gms 库中的所有警告和注释。

【讨论】:

  • Afaik 这应该是基于 xamarin 的应用程序的正确位置。
【解决方案2】:

我用 Xamarin 论坛的这个解决方案解决了这个问题:

在解决方案的 Android 项目中创建名为 proguard.cfg 的文件。右键单击并将 Build Action 设置为 ProguardConfig。 添加以下行:

-keep class com.google.android.gms.** { *; }
-dontwarn com.google.android.gms.**

根据您遇到的错误类型修改上述内容 确保将文件保存为 UTF-8 而不是 UTF-8 BOM

编译版本:6.0 最低目标:5.1 目标版本:6.0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-27
    • 2018-02-05
    • 1970-01-01
    • 2015-08-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多