標籤:
話說解決問題和研究問題是兩碼事
網上那個的加殼方案,
mProviderMap 在
235行 http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.4.4_r1/android/app/ActivityThread.java?av=f
在2.3 -4-4.2的手機上,擷取到的這個map是空的 所以不會走到下面的迴圈裡面去
但是4.4.4的上面他能擷取到這個map裡面有值的
而且他是這樣是內容
[email protected](5355): [email protected]
但是在2.3-4.4.2的手機上 這個map是空的
這個map在前面的版本裡是 HashMap 後面的是ArrayMap
要注意
所以在2.3-4.4.2的手機上不會進入map就沒有那個 expected receiver of type android.content.ContentProvider, but got null 異常了
然而在4.4.4的手機上Map不為空白,進入之後
有一個擷取android.app.ActivityThread$ProviderClientRecord 的mLocalProvider 屬性值 ,這個不知道為什麼 在4.4.4的手機上就是空的
321行代碼http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.4.4_r1/android/app/ActivityThread.java#ActivityThread.ProviderClientRecord
需要處理一下
然後在源碼裡找了好久 因為4.4.4的上map裡有1個值,第二個map迴圈出來取這個值的時候 mLocalProvider空了,我就去源碼找了半天,結果未果
後來發現 那個mLoacalProvider可以為空白的,但是這個map還是要迴圈完的,
最終我只是想 應該 android.app.ActivityThread$ProviderClientRecord 到這裡擷取的時候可能 應該裡面還有一系列的操作 保證程式能運行起來
這個問題 一開始以為是buildtools的問題,從 19.0.0 一直試到23.0.2 但是發現不行,在公司的是4.4.2 家裡的是4.4.4的手機上 糾結了好幾天
後來發現偏偏My Phone和公司的測試機都是4.4 但是一個是4.4.4 一個是4.4.2 恰好我在公司試的好好的以為4.4的沒問題, 在家裡就不行了
Android加殼