1、報(bào)錯(cuò)信息如下:
/zygote: Rejecting re-init on previously-failed class java.lang.Class<android.support.v4.view.ViewCompat$OnUnhandledKeyEventListenerWrapper>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/view/View$OnUnhandledKeyEventListener;
??
因?yàn)轫?xiàng)目中使用的api等級(jí)和虛擬機(jī)api等級(jí)不一致導(dǎo)致的桩蓉, 我項(xiàng)目中build.gradle sdk api用的28淋纲,虛擬機(jī)用的27,然后項(xiàng)目中用了28中的功能院究,虛擬機(jī)沒(méi)有這個(gè)功能帚戳,所以報(bào)錯(cuò)了,修改虛擬機(jī)的api等級(jí)改成28就行了
??
implementation 'com.android.support:appcompat-v7:26.1.0'依賴也改成對(duì)應(yīng)的版本
2儡首、AIDL調(diào)用過(guò)程中片任,_reply.readExcption()報(bào)空指針問(wèn)題。報(bào)錯(cuò)如下:
ERROR/AndroidRuntime(9435): FATAL EXCEPTION: main
ERROR/AndroidRuntime(9435): java.lang.NullPointerException
ERROR/AndroidRuntime(9435): at android.os.Parcel.readException(Parcel.java:1328)
ERROR/AndroidRuntime(9435): at android.os.Parcel.readException(Parcel.java:1276)
??
這種問(wèn)題一般都是服務(wù)端Service業(yè)務(wù)邏輯處理的時(shí)候報(bào)錯(cuò)了蔬胯,仔細(xì)檢查一下代碼吧对供。引起這個(gè)報(bào)錯(cuò)的原因很多,看看服務(wù)端的問(wèn)題氛濒。
3产场、Binder內(nèi)存限制是1m-8k, 為什么一次調(diào)用最大傳輸數(shù)據(jù)只有大約507k?
Binder分配的內(nèi)存是1m, 但是實(shí)際上一次調(diào)用超過(guò)大約507k,就會(huì)拋出TransactionTooLarge異常。
??
原因:Binder的線程池?cái)?shù)量默認(rèn)是15個(gè)舞竿,由15個(gè)線程共享這1MB-8KB的內(nèi)存空間京景,所以實(shí)際傳輸大小并沒(méi)有那么大