android - 如何解决应用内结算中的此错误?

标签 android in-app-billing

FATAL EXCEPTION: main
java.lang.NullPointerException
    at android.os.Parcel.readException(Parcel.java:1328)
    at android.os.Parcel.readException(Parcel.java:1276)
    at com.android.vending.billing.IMarketBillingService$Stub$Proxy.sendBillingRequest(IMarketBillingService.java:100)
    at kr.my.dungeons.BillingService$CheckBillingSupported.run(BillingService.java:209)
    at kr.my.dungeons.BillingService$BillingRequest.runIfConnected(BillingService.java:127)
    at kr.my.dungeons.BillingService.runPendingRequests(BillingService.java:609)
    at kr.my.dungeons.BillingService.onServiceConnected(BillingService.java:654)
    at android.app.LoadedApk$ServiceDispatcher.doConnected(LoadedApk.java:1049)
    at android.app.LoadedApk$ServiceDispatcher$RunConnection.run(LoadedApk.java:1066)
    at android.os.Handler.handleCallback(Handler.java:587)
    at android.os.Handler.dispatchMessage(Handler.java:92)
    at android.os.Looper.loop(Looper.java:126)
    at android.app.ActivityThread.main(ActivityThread.java:4002)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:491)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:844)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)
    at dalvik.system.NativeStart.main(Native Method)

这是错误语法。

  1. 从 SDK 获取示例源代码。

  2. 将“公钥”放入来自 google market 的 Security.java 中。

  3. 我的源路径是“src/kr/my/”,aidl 文件路径是“src/com/android/vending/billing/”。

  4. 已检查 AndroidManifest.xml。

  5. 将 apk 上传到 Google 市场。 (未发表)

  6. 在 Google 市场中添加“sword_001”、“potion_001”。(已发布)

  7. 在设备上安装了相同的 apk。

(来自 https://github.com/robotmedia/AndroidBillingLibrary 的示例源中存在相同错误)

我错了什么?

最佳答案

当用户未接受市场 EULA 时会发生这种情况

因此启动 EULA

 try {
    CALL BILLING CODE HERE .....
  } catch (NullPointerException e) {
    initialiseMarket();
  }

private void initialiseMarket() {
  new AlertDialog.Builder(this).
    setTitle("Android Market").
    setNeutralButton("CLOSE"), new DialogInterface.OnClickListener() {
      public void onClick(DialogInterface dialog, int which) {
        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("market://search"));
        startActivity(intent);
      }
    }).
    setMessage("Android Market not initialised. Please accept EULA and restart.").
    show();
}

<子> Taken from here

关于android - 如何解决应用内结算中的此错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8118609/

相关文章:

android - Android中的 9-patch 图像错误

Android 订阅 getPurchases

Android应用内结算: How to remove published item from product list?

android - Google Play Billing 测试卡在制作后仍会显示

android - 从android中的数据库读取到arraylist

java - 安卓java : foreach through json array returning values?

android - 使用 ViewPager 滑动时 fragment 不会调用 OnResume()

in-app-billing - 在应用程序计费 V3 onActivityResult 未被调用

android - 如何从 Google Play 应用内结算中解析价格

android - Horizo​​ntalScrollView的点击事件