前言:實現應用自動下載更新時,在安裝時出現“文件包與具有同一名稱的現有文件包衝突”的錯誤。
因爲適配7.0以上獲取內置路徑的適配,添加了配置一些配置:
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="包命.fileprovider"
android:exported="false"
android:grantUriPermissions="true"
tools:replace="name,authorities,exported,grantUriPermissions">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths"
tools:replace="name,resource"></meta-data>
</provider>
開始以爲是authorities的錯誤,經過檢查並不是由它引起的。
思考:會不會是debugger調式參數和正式release參數不一致引起。畢竟是在AS上run as直接跑的。
驗證該這個判斷:通過直接打包apk進行安裝的方式去測試,沒問題,確實證明了release環境打包出來的apk安裝是沒問題的,那麼可能是debug環境缺少release環境的某些配置。與release環境不一致。
解決:既然正式環境簽名是什麼配置,我們調式環境也配置一樣即可。
signingConfigs {
release {
keyAlias props['KEY_ALIAS']
keyPassword props['KEY_PASSWORD']
storeFile file(props['STORE_FILE'])
storePassword props['STORE_PASSWORD']
v2SigningEnabled true
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
debug {
signingConfig signingConfigs.release
}
}