Lollipop 5.0示例许可检查应用程序在仿真器(AVD)上崩溃

时间:2014-11-30 02:58:01

标签: android android-intent android-5.0-lollipop android-lvl

当运行Google在sdk / extras / google / play_licensing中提供的示例许可检查应用时,它会在运行Lollipop(5.0)的模拟器(AVD)上崩溃(我没有运行5.0的手机)。它在运行Kitkat的手机上运行良好。

在4.4 Kitkat上它会发出警告

Implicit intents with startService are not safe: Intent { act=com.android.vending.licensing.ILicensingService } 

android.content.ContextWrapper.bindService:538 com.google.android.vending.licensing.LicenseChecker.checkAccess:150 LicActivity.doCheck:126 

我不确定5.0他们是否已将其从警告移至完全爆炸错误。

我不知道如何将隐式意图调用转换为显式调用。 它在LicenceChecker类中被调用

   boolean bindResult = mContext
                            .bindService(
                                    new Intent(
                                            new String(
                                               Base64.decode("HEX_TEXT"))),
                                    this, // ServiceConnection.
                                    Context.BIND_AUTO_CREATE);

BASE 64解码为com.android.vending.licensing.ILicensingService

我刚收到一条错误消息很遗憾,许可证检查程序已停止。在对话框中。

它在logcat中显示此消息

java.lang.RuntimeException: Unable to instantiate application com.android.vending.VendingApplication: java.lang.ClassNotFoundException:

 Didn't find class "com.android.vending.VendingApplication" on path: DexPathList[[zip file "/system/app/LicenseChecker/LicenseChecker.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]

有人报道了一段时间但仍然没有解决方案

http://code.google.com/p/android/issues/detail?id=61680

2 个答案:

答案 0 :(得分:9)

添加

intent.setPackage("com.android.vending");

Intent确保它是Android 5.0所要求的明确意图。

答案 1 :(得分:1)

试试这个

Intent serviceIntent = new Intent(
     new String(Base64.decode("Y29tLmFuZHJvaWQudmVuZGluZy5saWNlbnNpbmcuSUxpY2Vuc2luZ1NlcnZpY2U=")));
     serviceIntent.setPackage("com.android.vending");

     boolean bindResult = mContext
             .bindService(
               serviceIntent,
               this, // ServiceConnection.
               Context.BIND_AUTO_CREATE);