当前位置: 首页 > 知识库问答 >
问题:

启用Proguard时,Xamarin Android应用程序会因缺少google play服务类而崩溃

公羊喜
2023-03-14

无论如何,由于multi-dex支持不起作用,我的下一个尝试就是让Proguard能够优化应用程序中绑定的类。我下载了最新的proguard文件(5.3.3),并将它们部署到/android/sdk/tools/proguard。我更新了proguard-android.txt文件,使其包含以下行:

-dontwarn sun.misc.Unsafe
-keep public class com.google.android.gms.* { public *; }
-dontwarn com.google.android.gms.**

然而,当应用程序启动并尝试使用google位置服务时,它会使应用程序崩溃:

导致Xamarin的原因:java.lang.nosuchmethoderror:没有非静态方法“lcom/google/android/gms/internal/zzbym;.getlastlocation(lcom/google/android/gms/common/api/googleapiclient;)landroid/location/location;”在md5ecd6d76dd0054fab042915172720bf10.locationservice.n_onconnected(本机方法)在md5ecd6d76dd0054fab042915172720bf10.locationservice.onconnected(locationservice.java:35)在com.google.android.gms.common.internal.zzad.zzk(未知源:108)

我不确定我遗漏了什么,我以为上面的keep命令可以确保这些类仍然包含在内。我错过了什么?

共有1个答案

扶隐水
2023-03-14

让它起作用了...我在Xamarin项目的根目录中创建了一个proguard.cfg文件,将其构建操作更改为ProguardConfiguration,然后将其内容设置为:

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

我不得不用UTF8编码将其保存在TextEdit中,否则无法解析

它仍然不能解释为什么multi-dex支持不起作用,但至少我们现在是畅通的...

 类似资料:
  • 问题内容: 我的应用程序在没有启用proguard的情况下可以完美运行,但是当我启用它时,该应用程序立即崩溃。我尝试了配置中的许多组合都无济于事。 有什么我应该保留的东西,我丢失了吗? proguard配置:https : //gist.github.com/hanleyhansen/99fc07807950bae8e4f5 完整的日志:https ://gist.github.com/hanle

  • 问题内容: 每次我从Eclipse导出签名应用程序并将apk文件安装到手机上时,该应用程序都会崩溃。这仅在启用Proguard的情况下发生。 这是我的保护文件 我运行了adb logcat命令来检查崩溃报告。以下是我认为很重要的报告摘要: 第二段: 如果有人可以帮助我,我将非常感谢并接受您的回答。 更新: 所以我将这些添加到我的proguard文件中 现在启用Proguard时出现与Jackson

  • 问题是,当我在Google中使用授权运行此代码时,它会立即崩溃: 但是日志中的错误: 2019-06-22 17:55:42.652 29327-23222/?E/AudioSource:在已关闭的AudioSource 2019-06-22 17:55:43.240 2093-2616/?E/TouchFilter:setTouchFilter日志启用参数:0 2019-06-22 17:55:

  • 问题内容: 我正在尝试创建一个简单的手电筒应用程序,以学习android开发。我正在尝试获取它,以便当您单击灯光ImageView对象时,它会更改图像。但是现在,当调试器进入light.setImageResource()时,它崩溃。 它抛出的错误是 问题答案: 崩溃: 正如您的堆栈跟踪所说:“ java.lang。OutOfMemoryError : 未能分配51840012字节分配,其中包含4

  • 应用程序由于stacktrace的StackOverflow错误而不时崩溃(见下文)。 该错误意外地出现在各种方案中。我们无法模拟它或预测它的发生。 提前谢谢你。 Stacktrace错误(缩短版):