Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

IAB startSetup NullPointerException

Tags:

I am attempting to setup In-App Billing in my application. I haven't got very far and am running into a null pointer exception when trying to start my IabHelper. I am following this google tutorial.

import com.iabtest.util.IabHelper; import com.iabtest.util.IabResult;  public class MainActivity extends Activity {     IabHelper mHelper;      @Override     protected void onCreate(Bundle savedInstanceState)     {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_main);          String base64EncodedPublicKey = "My_secret_key";          mHelper = new IabHelper(this, base64EncodedPublicKey);         mHelper.enableDebugLogging(true); //Turned on to try to help solve the issue         Log.d("TEST", "Starting setup.");         mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener()         {             public void onIabSetupFinished(IabResult result)             {                 Log.d("TEST", "Setup finished.");                  if(!result.isSuccess())                 {                     // Oh noes, there was a problem.                     Log.d("TEST", "Problem setting up in-app billing: " + result);                     return;                 }                  //IAB SET UP!                 Log.d("TEST", "IAB ready");             }         });     } } 

In the below logcat, it appears that the null pointer exception is being triggered in IabHelper.java on line 267. Since this is google code, I'm not sure how to fix this. Here is line 267.

if (!mContext.getPackageManager().queryIntentServices(serviceIntent, 0).isEmpty()) { 

Here is my LogCat with the error:

12-17 05:28:29.908: E/Trace(1478): error opening trace file: No such file or directory (2)  12-17 05:28:30.898: W/GooglePlayServicesUtil(1478): Google Play Store is missing.  12-17 05:28:31.838: D/TEST(1478): Starting setup.  12-17 05:28:31.838: D/IabHelper(1478): Starting in-app billing setup.  12-17 05:28:31.848: D/AndroidRuntime(1478): Shutting down VM  12-17 05:28:31.848: W/dalvikvm(1478): threadid=1: thread exiting with uncaught exception (group=0x40a71930)  12-17 05:28:31.878: E/AndroidRuntime(1478): FATAL EXCEPTION: main  12-17 05:28:31.878: E/AndroidRuntime(1478): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.iabtest/com.iabtest.MainActivity}: java.lang.NullPointerException  12-17 05:28:31.878: E/AndroidRuntime(1478):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)  12-17 05:28:31.878: E/AndroidRuntime(1478):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)  12-17 05:28:31.878: E/AndroidRuntime(1478):     at android.app.ActivityThread.access$600(ActivityThread.java:141)  12-17 05:28:31.878: E/AndroidRuntime(1478):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)  12-17 05:28:31.878: E/AndroidRuntime(1478):     at android.os.Handler.dispatchMessage(Handler.java:99)  12-17 05:28:31.878: E/AndroidRuntime(1478):     at android.os.Looper.loop(Looper.java:137)  12-17 05:28:31.878: E/AndroidRuntime(1478):     at android.app.ActivityThread.main(ActivityThread.java:5041)  12-17 05:28:31.878: E/AndroidRuntime(1478):     at java.lang.reflect.Method.invokeNative(Native Method)  12-17 05:28:31.878: E/AndroidRuntime(1478):     at java.lang.reflect.Method.invoke(Method.java:511)  12-17 05:28:31.878: E/AndroidRuntime(1478):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)  12-17 05:28:31.878: E/AndroidRuntime(1478):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)  12-17 05:28:31.878: E/AndroidRuntime(1478):     at dalvik.system.NativeStart.main(Native Method)  12-17 05:28:31.878: E/AndroidRuntime(1478): Caused by: java.lang.NullPointerException  12-17 05:28:31.878: E/AndroidRuntime(1478):     at com.iabtest.util.IabHelper.startSetup(IabHelper.java:267)  12-17 05:28:31.878: E/AndroidRuntime(1478):     at com.iabtest.MainActivity.onCreate(MainActivity.java:112)  12-17 05:28:31.878: E/AndroidRuntime(1478):     at android.app.Activity.performCreate(Activity.java:5104)  12-17 05:28:31.878: E/AndroidRuntime(1478):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)  12-17 05:28:31.878: E/AndroidRuntime(1478):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)  12-17 05:28:31.878: E/AndroidRuntime(1478):     ... 11 more 

Edit: I'm still not sure the reason for the error. However, I have found a useful tutorial that has been better than the google documentation. http://www.techotopia.com/index.php/Integrating_Google_Play_In-app_Billing_into_an_Android_Application_%E2%80%93_A_Tutorial