使用多个构建时发生错误 INSTALL_FAILED_CONFLICTING_PROVIDER
Using several builds error occurs INSTALL_FAILED_CONFLICTING_PROVIDER
我有以下结构gradle:
productFlavors {
main {
applicationId = "com.mayapp.main"
minSdkVersion 16
targetSdkVersion 23
versionCode 5
versionName '2.0'
}
free {
applicationId = "com.mayapp.free"
minSdkVersion 16
targetSdkVersion 23
versionCode 5
versionName '2.0'
}
full {
applicationId = "com.mayapp.full"
minSdkVersion 16
targetSdkVersion 23
versionCode 5
versionName '2.0'
}
}
在主构建中拥有唯一的清单文件,它是 Facebook 的提供者。
<provider android:authorities="com.facebook.app.FacebookContentProvider1234"
android:name="com.facebook.FacebookContentProvider"
android:exported="true" />
但是当尝试安装另一个版本时,例如免费版会出现 INSTALL_FAILED_CONFLICTING_PROVIDER 错误。由于所有构建都使用相同的 Facebook ID,我该如何解决此冲突?
如果你想在同一台设备上安装不同的应用程序,请确保它们中没有相同的提供者(权限),否则你应该卸载第一个
我设法解决了这个冲突。
例如,在免费构建中,我创建了一个 AndroidManifest.xml,格式如下:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mayapp.free"
xmlns:tools="http://schemas.android.com/tools">
...
<meta-data android:name="com.facebook.sdk.ApplicationId"
tools:replace="android:value"
android:value="@string/facebook_app_id"/>
<provider android:authorities="com.facebook.app.FacebookContentProvider0123456789"
android:name="com.facebook.FacebookContentProvider"
tools:replace="android:authorities"
android:exported="true"/>
这样解决了我的矛盾。
细节,必须在门户网站 Facebook 中创建更多应用程序,每个构建一个。
我有以下结构gradle:
productFlavors {
main {
applicationId = "com.mayapp.main"
minSdkVersion 16
targetSdkVersion 23
versionCode 5
versionName '2.0'
}
free {
applicationId = "com.mayapp.free"
minSdkVersion 16
targetSdkVersion 23
versionCode 5
versionName '2.0'
}
full {
applicationId = "com.mayapp.full"
minSdkVersion 16
targetSdkVersion 23
versionCode 5
versionName '2.0'
}
}
在主构建中拥有唯一的清单文件,它是 Facebook 的提供者。
<provider android:authorities="com.facebook.app.FacebookContentProvider1234"
android:name="com.facebook.FacebookContentProvider"
android:exported="true" />
但是当尝试安装另一个版本时,例如免费版会出现 INSTALL_FAILED_CONFLICTING_PROVIDER 错误。由于所有构建都使用相同的 Facebook ID,我该如何解决此冲突?
如果你想在同一台设备上安装不同的应用程序,请确保它们中没有相同的提供者(权限),否则你应该卸载第一个
我设法解决了这个冲突。 例如,在免费构建中,我创建了一个 AndroidManifest.xml,格式如下:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mayapp.free"
xmlns:tools="http://schemas.android.com/tools">
...
<meta-data android:name="com.facebook.sdk.ApplicationId"
tools:replace="android:value"
android:value="@string/facebook_app_id"/>
<provider android:authorities="com.facebook.app.FacebookContentProvider0123456789"
android:name="com.facebook.FacebookContentProvider"
tools:replace="android:authorities"
android:exported="true"/>
这样解决了我的矛盾。 细节,必须在门户网站 Facebook 中创建更多应用程序,每个构建一个。