2011-11-14 14 views
2
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マーケットからSecurity.javaに「公開鍵」を入れてください。

  3. 私のソースパスは 'src/kr/my /'で、ファイルパスは 'src/com/android/vending/billing /'です。

  4. Checked AndroidManifest.xml。

  5. googleマーケットにapkをアップロードします。

  6. は、デバイス上で同じAPKをインストール。

  7. 追加 'sword_001' Googleの市場で、 'potion_001'(公開されません)(公開)。

https://github.com/robotmedia/AndroidBillingLibraryからのサンプルソースで同じエラー)

私は何を間違えたのか?

+0

私のデバイスをリセットするために修正されました – susemi99

答えて

4

ユーザーが市場EULA

を受け入れていない場合これは、だから私はここにhttps://github.com/drewjw81/AndroidBillingLibrary

これを固定に取り組んでいる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

+0

ありがとうございます。私は別の問題を解決しました... – susemi99

0

を起動が起こりますこのバージョンでは、Playに正しくバインドできない場合に警告が表示されます。

もしあなたがそれを使用するなら、まだ何らかの作業が必要であることを覚えておいてください。テストしてください。

0

これは、hereと報告されている既知のIn-App Billingバグのようです。

この場合、AndroidBillingLibrarycatchを追加しました。

0

ここに私の答えを読む:

android in-app billing - restoreTransactionInformation

を、私はそうしながら、(私を含め)ユーザーの束が、このスタックトレースを見ていたので、あなたが取引を復元しようとしたと仮定しています。

エラーは、restoreTransactionsを呼び出すときに戻されたCONFIRM_TRANSACTIONS要求にnullフィールド( 'notification_id'フィールド)が追加されたために発生します。

関連する問題