Android 具有ContentProvider的模块
我正在使用图书馆,问题始于: 托盘基于ContentProvider。ContentProvider需要一个唯一的 权威。当您对多个应用程序使用同一权限时,您将 由于与的权限冲突,无法安装应用程序 错误消息: 失败[安装\u失败\u冲突\u提供程序] 因为我以前没有读过这篇文章,所以我使用这个库来解决多线程SharedReference的问题,这个项目必须在一个模块中才能在多个项目中使用 在使用此模块安装每个应用程序时,抛出故障[安装\u失败\u冲突\u提供程序]异常 因为第一个安装的应用程序中已经使用了权限Android 具有ContentProvider的模块,android,module,android-contentprovider,Android,Module,Android Contentprovider,我正在使用图书馆,问题始于: 托盘基于ContentProvider。ContentProvider需要一个唯一的 权威。当您对多个应用程序使用同一权限时,您将 由于与的权限冲突,无法安装应用程序 错误消息: 失败[安装\u失败\u冲突\u提供程序] 因为我以前没有读过这篇文章,所以我使用这个库来解决多线程SharedReference的问题,这个项目必须在一个模块中才能在多个项目中使用 在使用此模块安装每个应用程序时,抛出故障[安装\u失败\u冲突\u提供程序]异常 因为第一个安装的应用程序中
问题是:
- 如何跳过已安装模块的安装?(安装应用程序的其余部分,因此错误将消失)
- 否则,我如何组织项目?能够安装使用具有ContentProvider库的模块构建的多个应用程序
固定 对于需要类似功能的用户,请遵循以下步骤: 步骤1。我在主项目中配置了托盘库“其余应用程序需要” (承载数据库首选项的应用程序) 步骤2。我从存储库中提取了与托盘内容提供者连接所需的类,它们是:
- 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
- ErrorTypeException.java
// 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;
}
//主项目的bild.gradle
resValue“字符串”、“托盘权限”、“托盘”
//模块的TrayContract.java
@非空
私有静态字符串getAuthority(@NonNull final Context){
返回TextUtils.isEmpty(stestaauthority)?
AppConstant.u权限://
// etc
import <your.app.package>.tray.TrayPreferences;
// etc
public class AppPreferencesManager extends TrayPreferences {
// etc
}