在集成Scoreloop后导出时出现以下错误。在那之前它很好。
Proguard returned with error code 1. See console
Note: there were 211 duplicate class definitions.
You should check if you need to specify additional program jars.
Exception in thread "main" java.lang.StackOverflowError
at proguard.obfuscate.ClassObfuscator.visitEnclosingMethodAttribute(ClassObfuscator.java:182)
.........
.............
可能还有210多个错误,我在这里没有给出。我通过以下方式在proguard-project.txt中提到了Scoreloop:
#############
# Scoreloop #
#############
-dontwarn com.scoreloop.client.android.core.paymentprovider.**
-keep class com.scoreloop.client.android.core.paymentprovider.fortumo.FortumoPaymentProviderController {*;}
-keep class com.scoreloop.client.android.core.paymentprovider.fortumo.FortumoPaymentProvider {*;}
-keep class com.scoreloop.client.android.core.paymentprovider.paypalx.PayPalXPaymentProviderController {*;}
-dontwarn com.scoreloop.client.android.core.ui.WebViewDialog
-keep class com.scoreloop.client.android.core.ui.WebViewDialog {*;}
-keep class com.facebook.android.** {*;}
如何解决这些错误?
答案 0 :(得分:3)
如果您之前成功签名,那就是我遇到的情况。
删除项目中的proguard文件夹后,我尝试再次对apk进行签名。
成功了!
答案 1 :(得分:2)
自己解决问题。想到为什么我不把所有的得分循环课程召集起来,看看会发生什么;它起作用了。行之后:
-dontwarn com.scoreloop.client.android.core.paymentprovider.**
我添加了:
-keep class com.scoreloop.** {*;}
这解决了它。
答案 2 :(得分:0)
使用-dontnote
代替dontwarn
。
参考:https://www.guardsquare.com/en/products/proguard/manual/usage