第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

無(wú)法從 Google 的 IAB 框架中捕獲 IllegalStateException

無(wú)法從 Google 的 IAB 框架中捕獲 IllegalStateException

SMILET 2022-06-15 17:25:48
我有一個(gè)使用In App Billing v3 框架的 Google Play 應(yīng)用。Google Play開(kāi)發(fā)者控制臺(tái)報(bào)告頻繁崩潰java.lang.IllegalStateException事實(shí)上,我的大部分崩潰都是這種非法狀態(tài)異常。我使用 IAB 框架中的示例代碼來(lái)處理我的應(yīng)用內(nèi)購(gòu)買(mǎi)。調(diào)用堆棧:  at com.steenriver.armor.util.IabHelper.flagStartAsync (IabHelper.java:824)  at com.steenriver.armor.util.IabHelper.queryInventoryAsync (IabHelper.java:616)  at com.steenriver.armor.util.IabHelper.queryInventoryAsync (IabHelper.java:644)  at com.steenriver.armor.ArmorActivity$1.onIabSetupFinished (ArmorActivity.java:185)  at com.steenriver.armor.util.IabHelper$1.onServiceConnected (IabHelper.java:262)  at android.app.LoadedApk$ServiceDispatcher.doConnected (LoadedApk.java:1625)  at android.app.LoadedApk$ServiceDispatcher$RunConnection.run (LoadedApk.java:1653)  at android.os.Handler.handleCallback (Handler.java:836)  at android.os.Handler.dispatchMessage (Handler.java:103)  at android.os.Looper.loop (Looper.java:232)  at android.app.ActivityThread.main (ActivityThread.java:6802)  at java.lang.reflect.Method.invoke (Native Method)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1103)  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:964)為了擺脫崩潰,我決定在代碼中添加異常處理,如下所示:try{    mHelper.launchPurchaseFlow( this, sku, RC_REQUEST, mPurchaseFinishedListener, payload );} catch( IllegalStateException e ){    Log.e( TAG, e.toString() );     // Illegal State: maybe purchase is already in progress?    enableBuyButton();              // Enable buy button so customer can try again.}令我驚訝的是,添加了 try/catch 的新版本仍然會(huì)因相同的調(diào)用堆棧而崩潰。這是因?yàn)?IllegalStateException 根本無(wú)法被捕獲,還是什么?這里發(fā)生了什么?
查看完整描述

1 回答

?
犯罪嫌疑人X

TA貢獻(xiàn)2080條經(jīng)驗(yàn) 獲得超4個(gè)贊

如果您仔細(xì)查看您的調(diào)用堆棧,您會(huì)發(fā)現(xiàn)它不包含launchPurchaseFlow()try塊只能從正確位于其中的代碼中捕獲異常,并且由于您的異常沒(méi)有發(fā)生在對(duì) . 的任何調(diào)用中launchPurchaseFlow(),因此它不會(huì)發(fā)生在您的try.

launchPurchaseFlow()導(dǎo)致計(jì)費(fèi)狀態(tài)機(jī)開(kāi)始推進(jìn),但并非每個(gè)購(gòu)買(mǎi)操作都發(fā)生在該函數(shù)內(nèi)。換句話說(shuō),購(gòu)買(mǎi)是“異步”完成的。

從堆棧跟蹤中可以看出,異常實(shí)際上發(fā)生在 期間onServiceConnected(),它是從Handler回調(diào)中調(diào)用的。launchPurchaseFlow()此時(shí)實(shí)際上已經(jīng)返回;該try塊是過(guò)去的。為了用 包圍這個(gè)特定的操作try,您實(shí)際上需要編輯一個(gè)IabHelper方法,例如onServiceConnected(). 不建議這樣做,因?yàn)槟约旱拇a中的一些其他錯(cuò)誤似乎導(dǎo)致了異常。這是應(yīng)該修復(fù)的。

順便說(shuō)一句,我找不到flagStartAsync()拋出的 v3 計(jì)費(fèi)庫(kù)版本IllegalStateException,所以我不確定這是怎么回事。

必須提及:IabHelper顯然不再受 Google 支持;您應(yīng)該改用計(jì)費(fèi)客戶(hù)端庫(kù)。您發(fā)布的鏈接不再引用您正在使用的庫(kù)。


查看完整回答
反對(duì) 回復(fù) 2022-06-15
  • 1 回答
  • 0 關(guān)注
  • 159 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)