所以,我是一个Android和Java的初学者。我才刚刚开始学习。当我今天用Intent做实验时,我犯了一个错误。
Error:Execution failed for task ':app:processDebugManifest'.
> Manifest merger failed with multiple errors, see logs
我在这里找到了一些解决方案,并试图实施,但没有奏效。
这是我的身材。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>
This is my first week with coding, I am sorry if this is a really silly thing. I am really new to this and did not find any other place to ask. Sorry if I broke any rules
我也面临着同样的问题,经过大量研究,我找到了解决方案:
Your min sdk version should be same as of the modules you are using eg: your module min sdk version is 14 and your app min sdk version is 9 It should be same.
If build version of your app and modules not same. Again it should same
** In short, your app build.gradle file and manifest should have same configurations**
There's no duplicacy like same permissions added in manifest file twice, same activity mention twice.
If you have delete any activity from your project, delete it from your manifest file as well.
Sometimes its because of label, icon etc tag of manifest file:
a) Add the xmlns:tools line in the manifest tag.
b) Add tools:replace= or tools:ignore= in the application tag.
例子:
<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.support:cardview-v7 . 25.3.1版本的cardview, appcompat v7 . 26.0.0使用v7 . 26.0.0版本的cardview,因此在两个库中存在差异,因此会给出错误
错误:执行失败的任务':app:processDebugManifest'。
清单合并失败:属性元数据#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)
建议:在AndroidManifest.xml:25:5-27:41的元素中添加“tools:replace="android:value"”来覆盖。
因此,通过使用25.3.1版本的appcompat,我们可以避免这个错误
通过考虑以上几点,你将摆脱这个恼人的问题。
你也可以看看我的博客
https://wordpress.com/post/dhingrakimmi.wordpress.com/23
我也遇到了同样的问题,我只是在我的manifest.xml中添加了一行,它为我工作了。
tools:replace="android:allowBackup,icon,theme,label,name">
将这一行添加到
<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">
希望能有所帮助。
我使用了FirebaseUI库和Facebook SDK库,这导致了我的问题。
implementation 'com.firebaseui:firebase-ui-database:0.4.4'
implementation 'com.facebook.android:facebook-android-sdk:[4,5)'
从[这里][1],我摆脱了这个问题。
随着FirebaseUI库的最新更新,之前版本的Facebook SDK也是其中的一部分。
如果你正在使用这两个库,请删除Facebook SDK库。
https://github.com/firebase/FirebaseUI-Android/issues/230
更新
从Android Studio 3.0及后续版本开始,app.gradle文件需要使用implementation或api而不是compile来添加应用程序的依赖项。
在我的情况下,我的应用程序标签包括:
<application
android:name=".common.MyApplication"
android:allowBackup="false"
android:extractNativeLibs="false"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme"
android:usesCleartextTraffic="true"
tools:ignore="GoogleAppIndexingWarning"
tools:replace="android:appComponentFactory">
我解决了这个问题,我添加了新的参数作为android:appComponentFactory=""
所以我最后的应用标签变成:
<application
android:name=".common.MyApplication"
android:allowBackup="false"
android:extractNativeLibs="false"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme"
android:usesCleartextTraffic="true"
tools:ignore="GoogleAppIndexingWarning"
tools:replace="android:appComponentFactory"
android:appComponentFactory="">
我在使用firebase-auth最新版本为“19.3.1”时遇到了上述问题。而在我的项目中,我已经在使用firebase,但版本是“16.0.6”。
对于你们所有人都有同样的问题,但当你合并清单时,没有任何错误,这个解决方案为我工作,没有编辑你的“清单”文件和改变任何配置,删除这个,删除那个等。
打开“设置”。gradle”文件。
添加代码“gradlePluginPortal()”。
如果你开始一个新项目,如果你使用更新的Android Studio,代码可能会自动出现,但你需要再添加一次,如下所示:
pluginManagement {
存储库{
gradlePluginPortal ()
谷歌()
mavenCentral ()
jcenter ()
Maven {url 'https://jitpack.io'}
}
并再次输入代码“gridlePluginCentral()”。
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
jcenter()
maven {url 'https://jitpack.io'}
gradlePluginPortal()
}
}
在我的案例中,这样的问题通常发生在我们使用github用户库并将其用于布局文件或作为java文件中的“导入”时。让你的Android Studio保持最新状态并保留旧版本总是一个好主意,因为通常会对配置、库和其他支持文件进行更改。最好避免使用来自github用户的库,最好使用来自谷歌的库。