【问题标题】:Cannot add tools:replace="name" to application tag (Sugar Orm application error)无法将 tools:replace="name" 添加到应用程序标签(Sugar Orm 应用程序错误)
【发布时间】: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

【问题讨论】:

  • 你的&lt;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


【解决方案1】:

我不得不删除生成的 清单文件,该文件位于:

C:\my_projects_dir\app\src\debug

现在一切都很好。也许这是一个带有重新生成的 Android Studio 错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-19
    • 2011-07-26
    • 1970-01-01
    • 2016-06-23
    • 2018-05-26
    • 1970-01-01
    相关资源
    最近更新 更多