11

我的应用程序应该有 2 种风格:免费和付费。两个版本分别完美运行。但是当我想一次安装 2 个时,我得到了错误:[INSTALL_FAILED_CONFLICTING_PROVIDER]。我试图将 android:authorities 和 buildConfigField 值更改为完全不同,但它不会改变任何东西 - 应用程序不会安装。此外,我还删除了主要 Android 清单中的提供程序声明 - 没有。请帮我。

我的文件夹结构:

src
|- free
|   |- AndroidManifest.xml
|- main
|   |- all files and res catalogues (java, res, values etc.)
|   |- AndroidManifest.xml
|- premium
    |- AndroidManifest.cml

我的毕业文件:

apply plugin: 'com.android.application'


android {

compileSdkVersion 19
buildToolsVersion '20.0.0'

final PROVIDER_FREE = "com.example.free.contentprovider"
final PROVIDER_PRO = "com.example.pro.contentprovider"

defaultConfig {
    minSdkVersion 14
    targetSdkVersion 20
}
buildTypes {
    release {
        minifyEnabled false // new version
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
productFlavors {
    free {
        applicationId "com.example.free"
        versionCode 141201004
        versionName "1.004"
        buildConfigField "String", "PROVIDER_AUTHORITY", "\"" + PROVIDER_FREE + "\""
    }
    premium {
        applicationId "com.example.pro"
        versionCode 141210001
        versionName "0.001 Pro"
        buildConfigField "String", "PROVIDER_AUTHORITY", "\"" + PROVIDER_PRO + "\""
    }
}
}

我的内容提供商:

public class DatabaseContentProvider extends ContentProvider {
    public static final String AUTHORITY = BuildConfig.PROVIDER_AUTHORITY;
    ...
}

我的免费 Android 清单:

<provider
        android:name="com.example.tools.DatabaseContentProvider"
        android:authorities="com.example.free.contentprovider"
        android:exported="false"
        android:grantUriPermissions="true">
     <grant-uri-permission android:pathPattern=".*" />
</provider>

我的高级 Android 清单:

<provider
        android:name="com.example.tools.DatabaseContentProvider"
        android:authorities="com.example.pro.contentprovider"
        android:exported="false"
        android:grantUriPermissions="true">
    <grant-uri-permission android:pathPattern=".*" />
</provider>
4

0 回答 0