【问题标题】:Module with ContentProvider带有 ContentProvider 的模块
【发布时间】:2016-06-01 08:35:25
【问题描述】:

我正在使用this 库,问题开始于:

托盘基于 ContentProvider。 ContentProvider 需要一个唯一的 权威。当您对多个应用程序使用相同的权限时,您将 由于权限冲突而无法安装应用程序 错误信息:

失败 [INSTALL_FAILED_CONFLICTING_PROVIDER]

因为之前没读过这个,所以我用这个库来解决多线程SharedPreference的问题,这个项目必须变成一个模块才能在多个项目中使用。

在使用此模块安装每个应用时,抛出 Failure [INSTALL_FAILED_CONFLICTING_PROVIDER] 异常。

因为 authority 已在第一个安装的应用中使用。


问题是:

  • 如何跳过安装已安装的模块? (安装应用程序的其余部分,所以错误会消失)

  • 否则,我该如何构建项目?能够安装使用具有 ContentProvider 库的模块构建的多个应用程序。


【问题讨论】:

    标签: android module android-contentprovider


    【解决方案1】:

    已修复

    对于那些需要类似的东西,这些是要遵循的步骤:

    第 1 步。 我在 主项目 中配置了“其他应用程序所需”的托盘库 (托管数据库首选项的应用)

    第 2 步。我从存储库中提取了与 Tray ContentProvider 连接所需的类,它们是:

    • AbstractTrayPreference.java
    • ContentProviderStorage.java
    • ItemNotFoundException.java
    • Migration.java
    • OnTrayPreferenceChangeListener.java
    • PreferenceAccessor.java
    • Preferences.java
    • PreferenceStorage.java
    • SqliteHelper.java
    • TrayContract.java
    • TrayDBHelper.java
    • TrayException.java
    • TrayItem.java
    • TrayPreferences.java
    • TrayProviderHelper.java
    • TrayRuntimeException.java
    • TrayStorage.java
    • TrayUri.java
    • WrongTypeException.java

    在通用模块的新包中。

    第 3 步。我通过常量变量硬编码权限名称:

    这必须与主项目配置相匹配:

    // bild.gradle of Main Project
    resValue "string", "tray__authority", "<your.app.package>.tray"
    
    
    // TrayContract.java of Module
    @NonNull
    private static String getAuthority(@NonNull final Context context) {
        return TextUtils.isEmpty(sTestAuthority) ?
                AppConstant.TRAY_AUTHORITY: // <-- this one = <your.app.package>.tray
                sTestAuthority;
    }
    

    终于可以正常使用类了:

    // etc
    import <your.app.package>.tray.TrayPreferences;
    // etc
    public class AppPreferencesManager extends TrayPreferences {
    // etc
    }
    

    成功了:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-03
      • 1970-01-01
      • 1970-01-01
      • 2011-06-03
      • 2017-03-26
      • 2012-03-27
      • 2013-01-20
      • 2020-01-06
      相关资源
      最近更新 更多