2013-07-08 60 views
10

我正在尝试在应用中完成应用内购买流程工作。我使用http://developer.android.com/training/in-app-billing/preparing-iab-app.html(IabHelper等)的帮助类。一切都很好,直到我付款。当返回到活动,这引发异常Android应用内购买流程中断

java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, 
request=10001, result=-1, data=Intent { (has extras) }} to activity 
{com.sunlight.mangomonitor/com.sunlight.mangomonitor.PurchaseActivity}: 
java.lang.IllegalArgumentException: java.security.spec.InvalidKeySpecException: 
java.lang.RuntimeException: error:0D07209B:asn1 encoding routines:ASN1_get_object:too long 
at android.app.ActivityThread.deliverResults(ActivityThread.java:3408) 
at android.app.ActivityThread.handleSendResult(ActivityThread.java:3451) 
at android.app.ActivityThread.access$1200(ActivityThread.java:154) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1332) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:137) 
at android.app.ActivityThread.main(ActivityThread.java:5296) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:511) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869) 
at dalvik.system.NativeStart.main(Native Method) 
Caused by: java.lang.IllegalArgumentException: java.security.spec.InvalidKeySpecException: 
java.lang.RuntimeException: error:0D07209B:asn1 encoding routines:ASN1_get_object:too long 
at com.sunlight.mangomonitor.util.Security.generatePublicKey(Security.java:92) 
at com.sunlight.mangomonitor.util.Security.verifyPurchase(Security.java:66) 
at com.sunlight.mangomonitor.util.IabHelper.handleActivityResult(IabHelper.java:460) 
at com.sunlight.mangomonitor.PurchaseActivity.onActivityResult(PurchaseActivity.java:145) 
at android.app.Activity.dispatchActivityResult(Activity.java:5444) 
at android.app.ActivityThread.deliverResults(ActivityThread.java:3404) 
... 11 more 
Caused by: java.security.spec.InvalidKeySpecException: java.lang.RuntimeException: 
error:0D07209B:asn1 encoding routines:ASN1_get_object:too long 
at 
org.apache.harmony.xnet.provider.jsse.OpenSSLRSAKeyFactory.engineGeneratePublic(OpenSSLRSAKeyF actory.java:52) 
at java.security.KeyFactory.generatePublic(KeyFactory.java:171) 
at com.sunlight.mangomonitor.util.Security.generatePublicKey(Security.java:87) 
... 16 more 
Caused by: java.lang.RuntimeException: error:0D07209B:asn1 encoding 
routines:ASN1_get_object:too long 
at org.apache.harmony.xnet.provider.jsse.NativeCrypto.d2i_PUBKEY(Native Method) 
at org.apache.harmony.xnet.provider.jsse.OpenSSLRSAKeyFactory.engineGeneratePublic(OpenSSLRSAKeyfactory.java:48) 

我发现的活动,开始购买可能被破坏,我应该在这种情况下怎么办? 有什么建议吗?

+0

不知道到底发生了什么,但现在一切正常。将IabHelper mHelper.startSetup(mSetupFinishedListener)的设置从静态方法移动到非静态,另一些不重要的更改...就是这样。也许它只是需要一些时间。 – Eugene

回答

0

调用该购买活动使用呼叫活动的结果concept.check是否onActivityResult()函数使用RESULT_OKRESULT_CANCELLED功能使你找到答案。