gpt4 book ai didi

android - Android P 的 LicenseChecker 错误

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:41:18 25 4
gpt4 key购买 nike

我已经根据 this guide 设置了许可证检查器,尤其是使用 this sample code ,并且它已经工作了一段时间了。

但最近我收到来自 Android P 设备的崩溃报告,错误如下:

java.lang.NoClassDefFoundError: 
at com.google.android.vending.licensing.ServerManagedPolicy.d (ServerManagedPolicy.java:22)
at com.google.android.vending.licensing.ServerManagedPolicy.a (ServerManagedPolicy.java:22)
at com.google.android.vending.licensing.LicenseValidator.a (LicenseValidator.java:2)
at com.google.android.vending.licensing.LicenseChecker$ResultListener$2.run (LicenseChecker.java:245)
at android.os.Handler.handleCallback (Handler.java:873)
at android.os.Handler.dispatchMessage (Handler.java:99)
at android.os.Looper.loop (Looper.java:280)
at android.os.HandlerThread.run (HandlerThread.java:65)
Caused by: java.lang.ClassNotFoundException:
at dalvik.system.BaseDexClassLoader.findClass (BaseDexClassLoader.java:134)
at java.lang.ClassLoader.loadClass (ClassLoader.java:379)
at java.lang.ClassLoader.loadClass (ClassLoader.java:312)
at com.google.android.vending.licensing.ServerManagedPolicy.d (ServerManagedPolicy.java:22)
at com.google.android.vending.licensing.ServerManagedPolicy.a (ServerManagedPolicy.java:22)
at com.google.android.vending.licensing.LicenseValidator.a (LicenseValidator.java:2)
at com.google.android.vending.licensing.LicenseChecker$ResultListener$2.run (LicenseChecker.java:245)
at android.os.Handler.handleCallback (Handler.java:873)
at android.os.Handler.dispatchMessage (Handler.java:99)
at android.os.Looper.loop (Looper.java:280)
at android.os.HandlerThread.run (HandlerThread.java:65)

在 Android P 模拟器上的一些测试中,我无法重现上述相同的错误,但我发现 signedData 变量被接收为 nullLicenseValidator.verify() 中...参见代码 here .我可以根据 this post 检查 null 来解决这个问题,但这只是避免问题而不是解决问题。另外,我什至不确定它是否与用户在我的控制台中报告的问题相同(也许它特定于模拟器环境)。

谁能阐明这些错误并提供解决方案?

编辑更多信息:

  1. 我已经尝试(但没有成功)将以下内容添加到混淆器规则中,以防混淆器剥离它不应该剥离的内容:-保持类 com.google.android.vending.licensing.** { *; }
  2. 我也曾尝试(但没有成功)在我的 build.gradle 中启用 multidex: multiDexEnabled true
  3. 当我将 apk 直接发送给用户时,以与提交给 Play 商店的完全相同的形式编译,没有崩溃……似乎只有 Play 商店版本崩溃了

这是来自控制台的去混淆的崩溃日志(尽管我总是立即上传映射文件,但出于某种原因有时它会说“此映射文件是在崩溃后上传的”,这真的不可能是真的,因为我立即这样做) :

java.lang.NoClassDefFoundError: 
at com.google.android.vending.licensing.ServerManagedPolicy.decodeExtras (ServerManagedPolicy.java:22)
at com.google.android.vending.licensing.ServerManagedPolicy.processServerResponse (ServerManagedPolicy.java:22)
at com.google.android.vending.licensing.LicenseValidator.handleResponse (LicenseValidator.java:2)
at com.google.android.vending.licensing.LicenseValidator.verify (LicenseValidator.java:153)
at com.google.android.vending.licensing.LicenseChecker$ResultListener$2.run (LicenseChecker.java:45)
at android.os.Handler.handleCallback (Handler.java:873)
at android.os.Handler.dispatchMessage (Handler.java:99)
at android.os.Looper.loop (Looper.java:193)
at android.os.HandlerThread.run (HandlerThread.java:65)
Caused by: java.lang.ClassNotFoundException:
at dalvik.system.BaseDexClassLoader.findClass (BaseDexClassLoader.java:134)
at java.lang.ClassLoader.loadClass (ClassLoader.java:379)
at java.lang.ClassLoader.loadClass (ClassLoader.java:312)
at com.google.android.vending.licensing.ServerManagedPolicy.decodeExtras (ServerManagedPolicy.java:22)
at com.google.android.vending.licensing.ServerManagedPolicy.processServerResponse (ServerManagedPolicy.java:22)
at com.google.android.vending.licensing.LicenseValidator.handleResponse (LicenseValidator.java:2)
at com.google.android.vending.licensing.LicenseValidator.verify (LicenseValidator.java:153)
at com.google.android.vending.licensing.LicenseChecker$ResultListener$2.run (LicenseChecker.java:45)
at android.os.Handler.handleCallback (Handler.java:873)
at android.os.Handler.dispatchMessage (Handler.java:99)
at android.os.Looper.loop (Looper.java:193)
at android.os.HandlerThread.run (HandlerThread.java:65)

最佳答案

AndroidManifest.xml

 ...
<application
...
<uses-library
android:name="org.apache.http.legacy"
android:required="false" />
</application>
...

关于android - Android P 的 LicenseChecker 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53714933/

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