2013-07-08 63 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功能使你找到答案。