Proguard 服务器构建错误 Codename One

3
在我的项目中添加了一个Android证书后,Codename One服务器开始出现构建问题。通过向Codename One支持团队询问,他们告诉我可能与Proguard有关。所以我通过设置 android.enableProguard=false禁用了Proguard,但这并不推荐。这样做后,Codename One服务器可以正常构建,但是我想保持Proguard的启用状态,因为它是推荐的选项。但是当我保持启用时,Codename One服务器会输出以下错误日志的构建错误:https://s3.amazonaws.com/codenameone-build-response/d5f3c0c7-71a3-4a17-9f19-1c4e8fb3903d-1523988845519-error.txt 此外,我只使用了以下库:cn1-codescan.cn1libCN1JSON.cn1libparse4cn1.cn1lib,我是否缺少Proguard构建提示?我正在使用以下Proguard构建提示:
android.proguardKeep=-keep class com.mypackage.ProblemClass { *; } -keep class android.support.v4.** { *; } -keep class android.support.v7.** { *; } -keep public class * extends android.app.Service -keep public class * extends android.content.BroadcastReceiver -keep public class * extends android.app.Activity -keep public class * extends android.preference.Preference -keep public class com.freshdesk.mobihelp.exception.MobihelpComponentNotFoundException -keepclassmembers class * implements android.os.Parcelable {   public static final android.os.Parcelable$Creator *; }
1个回答

2

您需要将单词ProblemClass替换为导致问题的类的完整路径...

您写的是:

android.proguardKeep=-keep class com.mypackage.ProblemClass { *; } -keep class android.support.v4.** { *; } -keep class android.support.v7.** { *; } -keep public class * extends android.app.Service -keep public class * extends android.content.BroadcastReceiver -keep public class * extends android.app.Activity -keep public class * extends android.preference.Preference -keep public class com.freshdesk.mobihelp.exception.MobihelpComponentNotFoundException -keepclassmembers class * implements android.os.Parcelable {   public static final android.os.Parcelable$Creator *; }

您应该为com.parse.ParseOkHttpClient编写如下内容:
android.proguardKeep=-keep class com.parse.ParseOkHttpClient { *; } -keep class android.support.v4.** { *; } -keep class android.support.v7.** { *; } -keep public class * extends android.app.Service -keep public class * extends android.content.BroadcastReceiver -keep public class * extends android.app.Activity -keep public class * extends android.preference.Preference -keep public class com.freshdesk.mobihelp.exception.MobihelpComponentNotFoundException -keepclassmembers class * implements android.os.Parcelable {   public static final android.os.Parcelable$Creator *; }

已经修复了,但问题仍然存在,新的错误日志:https://s3.amazonaws.com/codenameone-build-response/0e646dad-561c-458f-bd9e-4aed91a085d4-1524063039391-error.txt - Simple
尝试将“-dontwarn okhttp3.**”添加到保持语句中。 - Shai Almog
有些警告已经消失了,但还有一些遗留问题,例如“找不到引用的类okio.Okio”和“找不到引用的类okio.BufferedSink”,然后我通过添加-dontwarn okio.**来解决它,所以它消失了,但问题仍然存在,还有两个警告未解决,错误日志:https://s3.amazonaws.com/codenameone-build-response/5bc752d5-fdfc-430f-8676-f06bff1e3733-1524149163229-error.txt。我担心构建提示字符限制,因为我只剩下很少的字符可以添加到构建提示中,所以如果我必须添加一些详细信息,我将达到字符限制。 - Simple
尝试将“-keep class com.parse.ParseOkHttpClient { *; }”替换为“-keep class com.parse.**”,我认为构建提示没有字符限制。 - Shai Almog
到目前为止,一切都没有效果。我正在从parse4cn1报告一个错误,请自己测试一下,在项目中添加以下库:cn1-codescan.cn1libCN1JSON.cn1lib,然后向您的项目添加一个Android证书,CN1服务器将正常构建! 然而,如果添加了此库:parse4cn1.cn1lib,则它将无法构建!即使这是没有修改的默认项目。 我很确定parse4cn1Proguard有问题,把它当作一份报告。确实存在构建提示的字符限制,请自行查看。等待解决方案。 - Simple
显示剩余8条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接