Manifest Merger在Android Studio中出现多个错误
所以,我是一个初学Android和Java的人。 我刚开始学习。 我今天正在用意图进行实验时,发生了一个错误。
Error:Execution failed for task ':app:processDebugManifest'. > Manifest merger failed with multiple errors, see logs
我在这里find了一些解决scheme并试图实现它们,但是它不起作用。
这是我的build.gradle:
apply plugin: 'com.android.application' android { compileSdkVersion 23 buildToolsVersion "23.0.0" defaultConfig { applicationId "com.example.rohan.petadoptionthing" minSdkVersion 10 targetSdkVersion 23 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:23.0.0' }
这是我的AndroidManifest:
<?xml version="1.0" encoding="utf-8"?>
package="com.example.rohan.petadoptionthing" > <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".Second" /> <activity android:name=".third"/> <activity android:name=".MainActivity"/> </application>
这是我第一个编码的周,如果这真的是一个愚蠢的事情,我很抱歉。 我对这个真的很陌生,没有find别的地方去问。 对不起,如果我违反任何规则
从你的mainfest文件中删除<activity android:name=".MainActivity"/>
。 正如您已经将其定义为:
<activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
所以,清单文件显示模糊。
打开应用程序清单( AndroidManifest.xml
),点击Merged Manifest
.Check图片
您可以在右栏中查看错误,尝试解决错误。它可能会帮助一个有同样问题的人。
我也面临同样的问题,经过大量研究发现解决scheme:
- 你的最低SDK版本应该与你使用的模块相同,例如:你的模块min sdk版本是14,你的应用程序最小sdk版本是9它应该是相同的。
- 如果你的应用程序和模块的版本不一样。 再次它应该相同**简而言之,您的应用程序
build.gradle
文件和清单应该有相同的configuration**- 清单文件中没有相同的权限添加两次,同样的活动提到两次。
- 如果您从项目中删除了任何活动,那么也要将其从清单文件中删除。
- 有时候是因为清单文件的标签,图标等标签:
a)在清单标签中添加
xmlns:tools
行。b)在应用程序标签中添加
tools:replace=
或者tools:ignore=
。
例:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.slinfy.ikharelimiteduk" xmlns:tools="http://schemas.android.com/tools" android:versionCode="1" android:versionName="1.0" > <application tools:replace="icon, label" android:label="myApp" android:name="com.example.MyApplication" android:allowBackup="true" android:hardwareAccelerated="false" android:icon="@drawable/ic_launcher" android:theme="@style/Theme.AppCompat" > </application> </manifest>
- 如果两个依赖关系不是相同的版本示例:您正在使用依赖的appcompat v7:26.0.0和facebook com.facebook.android:facebook-android-sdk:[4,5)facebook使用版本com.android的cardview。支持:cardview-v7:25.3.1和appcompat v7:26.0.0使用版本v7:26.0.0的cardview,所以在两个库中存在差异,从而给出错误
错误:执行任务':app:processDebugManifest'失败。
清单合并失败:属性meta-data#android.support.VERSION@value value =(26.0.0-alpha1)from [com.android.support:appcompat-v7:26.0.0-alpha1] AndroidManifest.xml:27:9 -38也存在于[com.android.support:cardview-v7:25.3.1] AndroidManifest.xml:24:9-31 value =(25.3.1)。 build议:在AndroidManifest.xml:25:5-27:41的元素中添加'tools:replace =“android:value”'来覆盖。
所以通过使用版本25.3.1的appcompat,我们可以避免这个错误
考虑到以上几点,你会摆脱这个令人恼火的问题。 你也可以查看我的博客https://wordpress.com/post/dhingrakimmi.wordpress.com/23
除了可用的解决scheme,请检查这一点。
如果您在AndroidManifest.xml
设置了android:allowBackup="false"
,那么在其他依赖关系中可能会出现android:allowBackup="true"
的冲突。
解
如@CLIFFORD PY所示,切换到AndroidManifest.xml
Merged Manifest
。 Android Studio会build议在你的AndroidManifest.xml
中的<application />
中添加tools:replace="android:allowBackup"
。
我面临同样的问题,我刚刚在我的manifest.xml中添加了一行,它为我工作。
tools:replace="android:allowBackup,icon,theme,label">
在下面添加这一行
<application android:name=".MyApplication" android:allowBackup="true" android:icon="@drawable/launcher" android:label="@string/app_name" android:largeHeap="true" android:screenOrientation="portrait" android:supportsRtl="true" android:theme="@style/AppThemecustom" tools:replace="android:allowBackup,icon,theme,label">
希望它会有所帮助。
通常在清单中出现错误时打开。打开AndroidManifest.xml。单击合并的清单选项卡。可以在那里看到错误。还包括那里提到的build议。在导入com.google.android.gms时遇到类似的问题.maps.model.LatLng,它build议我在应用程序标记中包含工具:overrideLibrary =“com.google.android.gms.maps”,并且构build成功。
-
在
AndroidManifest.xml
:- 在应用程序中,添加
tools:replace="android:icon, android:theme
和 - 在Manifest根目录下,添加
xmlns:tools="http://schemas.android.com/tools
- 在应用程序中,添加
-
在
build.gradle
:- 在根目录下,添加
useOldManifestMerger true
- 在根目录下,添加
作为Android Studio的新手,就我而言,我已经将一个现有的项目从Eclipse移到了Android Studio,发现在我的Manifest.xml中有一个重复的定义,这个定义没有被Eclipse挑选出来一个Gradle错误。
我通过进入Gradle控制台(屏幕右下angular)find了这个。
在过去的几天里,我也遇到了同样的问题。 但是经过大量的研究,我终于find了解决办法。
为了解决这个问题,你需要做的是:
1.检查您的项目的build.gradle文件和模块的build.gradle文件是否包含相同版本的所有依赖项。
2.确保项目的compileSdkVersion , buildToolsVersion , minSdkVersion和targetSdkVersion与您添加到项目中的模块或库相匹配。
compileSdkVersion 25 buildToolsVersion "25.0.0" defaultConfig { applicationId "com.example.appname" minSdkVersion 16 targetSdkVersion 25 versionCode 22 versionName "2.0.3" }
希望这可以帮助。
如果在添加Android库模块后出现此错误。
你可以通过从你的Android库模块的AndroidManifest.xml
中简单地删除android:label="@string/app_name"
来修复它
在我的折射器(用SHIFT + F6重命名)中碰到两次我们文件中字段的名称,并要求您在任何地方改变它,而我们却没有注意改变名称。 例如,如果在Java类中有一个variables名“id”,并用SHIFT + F6重命名它。 如果你不注意下一个对话框,它会询问你将在哪里更改id,你打勾检查所有它会改变你的布局文件中的所有id从新值。
这是非常简单的错误,只有当你在mainifest.xml文件中定义任何活动调用两次时才会发生
<activity android:name="com.futuretech.mpboardexam.Game" ></activity> //and launcher also------like that //solution:use only one