应用内结算中的NullPointerException

时间:2012-08-01 06:29:00

标签: android nullpointerexception in-app-billing

我正在Android中创建一个示例应用内结算服务应用。我使用了此blog post的代码。

当我运行时,我得到NullPointerException错误,如:

java.lang.RuntimeException: Unable to start receiver com.blundell.test.BillingReceiver: java.lang.NullPointerException

我已在BillingSecurity.java上替换了我的公钥。我在其他方面犯了什么错误?

感谢。

我的错误堆栈为:

我在以下位置BillingHelper.java文件上遇到异常:

protected static void verifyPurchase(String signedData, String signature) {
    ArrayList<VerifiedPurchase> purchases = BillingSecurity.verifyPurchase(signedData, signature);
    latestPurchase = purchases.get(0);

    confirmTransaction(new String[]{latestPurchase.notificationId});

    if(mCompletedHandler != null){
        mCompletedHandler.sendEmptyMessage(0);
    } else {
        Log.e(TAG, "verifyPurchase error. Handler not instantiated. Have you called setCompletedHandler()?");
    }
}

我的AndroidManifest.xmlhere

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.blundell.test"
      android:versionCode="2"
      android:versionName="1.0">
    <uses-sdk android:minSdkVersion="4" />

    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".AppMainTest"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

                <service android:name=".BillingService" />

                <receiver android:name=".BillingReceiver">
                        <intent-filter>
                                <action android:name="com.android.vending.billing.IN_APP_NOTIFY" />
                                <action android:name="com.android.vending.billing.RESPONSE_CODE" />
                                <action android:name="com.android.vending.billing.PURCHASE_STATE_CHANGED" />                    
                        </intent-filter>
                </receiver>     

    </application>
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="com.android.vending.BILLING" />


</manifest>

0 个答案:

没有答案