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)
这是错误语法。
从 SDK 获取示例源代码。
将“公钥”放入来自 google market 的 Security.java 中。
我的源路径是“src/kr/my/”,aidl 文件路径是“src/com/android/vending/billing/”。
已检查 AndroidManifest.xml。
将 apk 上传到 Google 市场。 (未发表)
在 Google 市场中添加“sword_001”、“potion_001”。(已发布)
在设备上安装了相同的 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/