AS安装APK失败的两种情况
INSTALL_FAILED_DUPLICATE_PERMISSION
根據(jù)網(wǎng)上的結(jié)論,在android L即android 5.0之后添加一種機(jī)制,主要是針對(duì)自定義權(quán)限的:
不同簽名的app種如果有同樣的自定義權(quán)限,那么只能安裝一個(gè),安裝第二個(gè)時(shí)就會(huì)報(bào)上面的錯(cuò)誤。
經(jīng)過(guò)測(cè)試,即使簽名相同也不行,不知道是我操作的問(wèn)題,還是android更高版本有了更嚴(yán)的機(jī)制。
總之,使用不同的自定義權(quán)限就沒(méi)問(wèn)題,一般自定義權(quán)限我們都會(huì)加入applicationid,即包名,這樣就不會(huì)沖突
INSTALL_FAILED_CONFLICTING_PROVIDER
與上面的類(lèi)似,在不同的app種有相同authorities的Provider。
官方解釋
查看官方文檔(docs/guide/topics/manifest/provider-element.html)的描述:
The Android system stores references to content providers according to an authority string, part of the provider’s content URI.
Android 系統(tǒng)根據(jù) authority 字符串來(lái)儲(chǔ)存 ContentProvider 的引用,并且 authority 還是 contentURI 的一部分。從這句話(huà)可以得出,在 Android 中 authority 必須是唯一的,不然 Android 系統(tǒng)如何區(qū)分開(kāi)不同應(yīng)用的 ContentProvider 呢?
所以解決方法一樣,為provider定義authorities時(shí)可以加入applicationid,即包名,這樣就會(huì)不同了。
另外注意:當(dāng)修改了authorities,代碼中也要進(jìn)行對(duì)應(yīng)的修改
總結(jié)
以上是生活随笔為你收集整理的AS安装APK失败的两种情况的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Android录制和播放PCM数据
- 下一篇: Android如何给通知channel静