gpt4 book ai didi

android - ProGuard:找不到引用的类 com.google.android.gms.R

转载 作者:IT老高 更新时间:2023-10-28 13:14:27 27 4
gpt4 key购买 nike

在 Android SDK 管理器中进行一些更新后,我尝试制作已签名的 apk 并得到以下信息:

ProGuard: [] Warning: com.google.android.gms.auth.GoogleAuthUtil: 
can't find referenced class com.google.android.gms.R
ProGuard: [] Warning: com.google.android.gms.auth.GoogleAuthUtil:
can't find referenced class com.google.android.gms.R$string
...
etc.

如果设置 -dontwarn com.google.android.gms.** 编译是可以的。但运行后我收到许多这样的错误报告(来自许多设备):

Caused by: android.view.InflateException: Binary XML file line #32: 
Error inflating class com.google.android.gms.common.SignInButton

在我的设备上一切正常。在更新之前,我没有 ProGuard 警告并且一切正常。怎么解决的?

最佳答案

虽然将其添加到 proguard-project.txt 文件中是可行的,但它会保留所有类。

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

我更喜欢这个,它可以让 apk 文件更小:

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

还请注意此处的最新 Google Play Proguard 通知:http://developer.android.com/google/play-services/setup.html#Proguard

-keep class * extends java.util.ListResourceBundle {
protected Object[][] getContents();
}

-keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable {
public static final *** NULL;
}

-keepnames @com.google.android.gms.common.annotation.KeepName class *
-keepclassmembernames class * {
@com.google.android.gms.common.annotation.KeepName *;
}

-keepnames class * implements android.os.Parcelable {
public static final ** CREATOR;
}

关于android - ProGuard:找不到引用的类 com.google.android.gms.R,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18646899/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com