2011-07-04 2 views
5

https://github.com/robotmedia/AndroidBillingLibraryAndroid Billing Libraryの使い方は?

私は別の課金クラスを作成しました:

public class Billing extends AbstractBillingActivity { 
    private static final String TAG = "Billing"; 

    public Billing() { 
    } 

    @Override 
    public void onBillingChecked(boolean supported) { 
     Log.i(TAG, "Billing supported: " + supported); 
    } 

ユーザーは私が行う環境設定でボタンを押した後:

Preference buyPref = (Preference) findPreference("pref_billing_buy"); 
    buyPref.setOnPreferenceClickListener(new OnPreferenceClickListener() { 
     public boolean onPreferenceClick(Preference preference) { 
      if (Debug.Yes) Log.d(TAG, "Buying ad-free version"); 
      Billing billing = new Billing(); 
      billing.checkBillingSupported(); 

      return true; 
     } 
    }); 

と、次のエラー取得:

07-04 20:21:22.797: ERROR/AndroidRuntime(7172): FATAL EXCEPTION: main 
07-04 20:21:22.797: ERROR/AndroidRuntime(7172): java.lang.NullPointerException 
07-04 20:21:22.797: ERROR/AndroidRuntime(7172):  at android.content.ContextWrapper.getPackageName(ContextWrapper.java:120) 
07-04 20:21:22.797: ERROR/AndroidRuntime(7172):  at net.robotmedia.billing.BillingService.getActionForIntent(BillingService.java:76) 
07-04 20:21:22.797: ERROR/AndroidRuntime(7172):  at net.robotmedia.billing.BillingService.createIntent(BillingService.java:69) 
07-04 20:21:22.797: ERROR/AndroidRuntime(7172):  at net.robotmedia.billing.BillingService.checkBillingSupported(BillingService.java:58) 
07-04 20:21:22.797: ERROR/AndroidRuntime(7172):  at net.robotmedia.billing.BillingController.checkBillingSupported(BillingController.java:114) 
07-04 20:21:22.797: ERROR/AndroidRuntime(7172):  at net.robotmedia.billing.AbstractBillingActivity.checkBillingSupported(AbstractBillingActivity.java:42) 
07-04 20:21:22.797: ERROR/AndroidRuntime(7172):  at spb.bridges.Preferences$1.onPreferenceClick(Preferences.java:212) 
07-04 20:21:22.797: ERROR/AndroidRuntime(7172):  at android.preference.Preference.performClick(Preference.java:812) 
07-04 20:21:22.797: ERROR/AndroidRuntime(7172):  at android.preference.PreferenceScreen.onItemClick(PreferenceScreen.java:198) 
07-04 20:21:22.797: ERROR/AndroidRuntime(7172):  at android.widget.AdapterView.performItemClick(AdapterView.java:284) 
07-04 20:21:22.797: ERROR/AndroidRuntime(7172):  at android.widget.ListView.performItemClick(ListView.java:3382) 
07-04 20:21:22.797: ERROR/AndroidRuntime(7172):  at android.widget.AbsListView$PerformClick.run(AbsListView.java:1696) 
07-04 20:21:22.797: ERROR/AndroidRuntime(7172):  at android.os.Handler.handleCallback(Handler.java:587) 
07-04 20:21:22.797: ERROR/AndroidRuntime(7172):  at android.os.Handler.dispatchMessage(Handler.java:92) 
07-04 20:21:22.797: ERROR/AndroidRuntime(7172):  at android.os.Looper.loop(Looper.java:144) 
07-04 20:21:22.797: ERROR/AndroidRuntime(7172):  at android.app.ActivityThread.main(ActivityThread.java:4937) 
07-04 20:21:22.797: ERROR/AndroidRuntime(7172):  at java.lang.reflect.Method.invokeNative(Native Method) 
07-04 20:21:22.797: ERROR/AndroidRuntime(7172):  at java.lang.reflect.Method.invoke(Method.java:521) 
07-04 20:21:22.797: ERROR/AndroidRuntime(7172):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
07-04 20:21:22.797: ERROR/AndroidRuntime(7172):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
07-04 20:21:22.797: ERROR/AndroidRuntime(7172):  at dalvik.system.NativeStart.main(Native Method) 

私のコードで何が間違っていますか?

また、ドキュメントが

When started your AbstractBillingActivity subclass will check if in-app billing is supported, followed by a call to onBillingChecked(boolean), which has to be implemented by the subclass.

言いますが、実際onBillingChecked()は呼び出されません。

答えて

2

は、私はもっと慎重にドキュメントを読んでする必要があります。

AbstractBillingActivity is an abstract activity that provides default integration with in-app billing.

だから、私がextends AbstractBillingActivityで自分のコードextends Activityに置き換えてきたときに動作を開始している(私はPreferenceActivityだけでなく、Activityを使用しました実際にいるので、 AbstractBillingActivityも編集しなければならなかった)。

+1

PreferenceActivityについての良いキャッチ。最も一般的なActivityサブクラス(PreferenceActivity、ListActivityなど)に、より多くのコンビニエンスクラスを追加する必要があります。 – hpique

関連する問題