【发布时间】:2018-04-16 09:21:35
【问题描述】:
我已将一个新库导入到我的项目中。不幸的是,SugarOrm 的库出错了。
当我尝试运行我的项目时,出现以下 gradle 错误:
9-42 Error:
Attribute application@name value=(com.orm.SugarApp) from AndroidManifest.xml:47:9-42
is also present at AndroidManifest.xml:47:9-42 value=(com.myproject.application.app.MyApplication).
Suggestion: add 'tools:replace="android:name"' to <application> element at AndroidManifest.xml:43:5-263:19 to override.
我尝试将替换行添加到清单的应用程序标签中:
<application
android:name=".app.MyApplication"
android:allowBackup="true"
tools:replace="android:name"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme">
但是,我遇到了同样的错误。
我的应用程序类如下所示:
public class MyApplication extends SugarApp{
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
}
我尝试了以下方法:
无效缓存、重启、重建、清理、重新排序 gradle lib 导入
如果可以的话,请帮忙。
编辑:
澄清:我想在带有 Sugar ORM 的 Android 4.4 (API 19) 上使用 multidex。以后的版本默认有multidex,但在4.4我必须在gradle中导入它,并且必须在应用程序代码中安装它。
所以基本上我必须将清单的应用程序设置为我的应用程序类,该类还处理 Sugar ORM 的内容和多索引安装。
这会导致错误。
版本:
multidex 1.02
SugarORM 1.5
【问题讨论】:
-
你的
<manifest标签中有“xmlns:tools="http://schemas.android.com/tools”吗? -
@sunilsunny 是的。
-
如果您在
manifest中提供SugarApp而不是MyApplication,会发生什么情况。它会抛出multidex。 ?.这个MyApplication除了multidex安装还有其他功能吗?。 -
你也可以试试
tools:node="replace"而不是tools:replace="android:name" -
将您的应用程序名称更改为其他名称
标签: android android-gradle-plugin sugarorm