• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

Apps java.lang.IllegalStateException: Could not execute method

GaryDoo

Newbie
Jan 21, 2013
11
0
Hi,

I'm not very experienced in Android and I've taken over someone else's work and have been asked to implement in billing v3.

I have debugged the code and have located the issue here

[HIGH]//IF THE BUTTON IS VISIBLE, AND CLICKED, PURCHASE CALCULATOR
public void unlockCalculators(View v) {
String payload = "";
mHelper.launchPurchaseFlow(this, SKU_riskCalc, RC_REQUEST,
mPurchaseFinishedListener, payload); <---- LINE 250
Log.d("BP_EXPERT", "PURCHASE RISK CALC");

}[/HIGH]

Here is where the mPurchasedListener is defined

[HIGH] IabHelper.OnIabPurchaseFinishedListener mPurchaseFinishedListener = new IabHelper.OnIabPurchaseFinishedListener()
{
@Override
public void onIabPurchaseFinished(IabResult result, Purchase purchase)
{
Log.d(TAG, "Purchase finished: " + result + ", purchase: " + purchase);
if (result.isFailure()) {
complain("Error purchasing: " + result);
}
if (!verifyDeveloperPayload(purchase)) {
complain("Error purchasing. Authenticity verification failed.");
return;

}
else if (purchase.getSku().equals(SKU_riskCalc)){

//UPDATE SHARED PREFERENCES HERE...
SharedPreferences prefs = getSharedPreferences("BloodPressure",MODE_PRIVATE);
SharedPreferences.Editor edit = prefs.edit();
edit.putBoolean("purchased_calcs", true);
edit.commit();
Log.d("BP_EXPERT", "PURCHASING RISK CALC");
//SELECT CORRECT LAYOUT AFTER PURCHASE
createStuff();
}
else if (purchase.getSku().equals(SKU_all)){

//UPDATE SHARED PREFERENCES HERE...
SharedPreferences prefs = getSharedPreferences("BloodPressure",MODE_PRIVATE);
SharedPreferences.Editor edit = prefs.edit();
edit.putBoolean("purchased_all", true);
edit.commit();
Log.d("BP_EXPERT", "PURCHASING ALL CONTENT");
//SELECT CORRECT LAYOUT AFTER PURCHASE
createStuff();
}
Log.d(TAG, "Purchase successful.");
}
};
[/HIGH]


When the app enters the launch purchase flow is when its forced closed. If anyone has any ideas as to what might be the problem I'd really appreciate it.
I've come across this problem, I'm not quite sure what is causing it, when I click on the button I get the following in my logcat

[HIGH]7-09 11:48:14.495: E/AndroidRuntime(1702): FATAL EXCEPTION: main
07-09 11:48:14.495: E/AndroidRuntime(1702): java.lang.IllegalStateException: Could not execute method of the activity
07-09 11:48:14.495: E/AndroidRuntime(1702): at android.view.View$1.onClick(View.java:2072)
07-09 11:48:14.495: E/AndroidRuntime(1702): at android.view.View.performClick(View.java:2408)
07-09 11:48:14.495: E/AndroidRuntime(1702): at android.view.View$PerformClick.run(View.java:8817)
07-09 11:48:14.495: E/AndroidRuntime(1702): at android.os.Handler.handleCallback(Handler.java:587)
07-09 11:48:14.495: E/AndroidRuntime(1702): at android.os.Handler.dispatchMessage(Handler.java:92)
07-09 11:48:14.495: E/AndroidRuntime(1702): at android.os.Looper.loop(Looper.java:144)
07-09 11:48:14.495: E/AndroidRuntime(1702): at android.app.ActivityThread.main(ActivityThread.java:4937)
07-09 11:48:14.495: E/AndroidRuntime(1702): at java.lang.reflect.Method.invokeNative(Native Method)
07-09 11:48:14.495: E/AndroidRuntime(1702): at java.lang.reflect.Method.invoke(Method.java:521)
07-09 11:48:14.495: E/AndroidRuntime(1702): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
07-09 11:48:14.495: E/AndroidRuntime(1702): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
07-09 11:48:14.495: E/AndroidRuntime(1702): at dalvik.system.NativeStart.main(Native Method)
07-09 11:48:14.495: E/AndroidRuntime(1702): Caused by: java.lang.reflect.InvocationTargetException
07-09 11:48:14.495: E/AndroidRuntime(1702): at com.bpxpert.bloodpressure.CalculatorRisk.unlockCalculators(CalculatorRisk.java:250)
07-09 11:48:14.495: E/AndroidRuntime(1702): at java.lang.reflect.Method.invokeNative(Native Method)
07-09 11:48:14.495: E/AndroidRuntime(1702): at java.lang.reflect.Method.invoke(Method.java:521)
07-09 11:48:14.495: E/AndroidRuntime(1702): at android.view.View$1.onClick(View.java:2067)
07-09 11:48:14.495: E/AndroidRuntime(1702): ... 11 more
07-09 11:48:14.495: E/AndroidRuntime(1702): Caused by: android.view.WindowManager$BadTokenException: Unable to add window -- token android.app.LocalActivityManager$LocalActivityRecord@462b6c10 is not valid; is your activity running?
07-09 11:48:14.495: E/AndroidRuntime(1702): at android.view.ViewRoot.setView(ViewRoot.java:509)
07-09 11:48:14.495: E/AndroidRuntime(1702): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177)
07-09 11:48:14.495: E/AndroidRuntime(1702): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
07-09 11:48:14.495: E/AndroidRuntime(1702): at android.view.Window$LocalWindowManager.addView(Window.java:424)
07-09 11:48:14.495: E/AndroidRuntime(1702): at android.app.Dialog.show(Dialog.java:241)
07-09 11:48:14.495: E/AndroidRuntime(1702): at com.bpxpert.bloodpressure.CalculatorRisk.alert(CalculatorRisk.java:382)
07-09 11:48:14.495: E/AndroidRuntime(1702): at com.bpxpert.bloodpressure.CalculatorRisk.complain(CalculatorRisk.java:374)
07-09 11:48:14.495: E/AndroidRuntime(1702): at com.bpxpert.bloodpressure.CalculatorRisk$3.onIabPurchaseFinished(CalculatorRisk.java:277)
07-09 11:48:14.495: E/AndroidRuntime(1702): at com.bpxpert.bloodpressure.util.IabHelper.launchPurchaseFlow(IabHelper.java:376)
07-09 11:48:14.495: E/AndroidRuntime(1702): at com.bpxpert.bloodpressure.util.IabHelper.launchPurchaseFlow(IabHelper.java:324)
07-09 11:48:14.495: E/AndroidRuntime(1702): ... 15 more
07-09 11:48:14.505: W/ActivityManager(105): Force finishing activity com.bpxpert.bloodpressure/.BloodPressureActivity[/HIGH]


Thanks in advance!
 

BEST TECH IN 2023

We've been tracking upcoming products and ranking the best tech since 2007. Thanks for trusting our opinion: we get rewarded through affiliate links that earn us a commission and we invite you to learn more about us.

Smartphones