从昨天开始,我在建筑时遇到了一个傻瓜错误 - 它只是随机出现......
这里有完整的堆栈跟踪:
我的项目取决于多个图书馆,直到昨天(即使是图书馆)也没有任何问题。
compile 'com.google.android.gms:play-services:3.1.36'
compile 'com.android.support:support-v4:13.0.0'
compile project(":libs:DatabaseCreationHelper")
compile project(":libs:actionbarsherlock")
任何人都知道如何修复它?它只是随机出现......这里有完整的堆栈跟踪:
* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':ItchyFeet:processDebugManifest'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)
at org.gradle.api.internal.changedetection.state.CacheLockReleasingTaskExecuter$1.run(CacheLockReleasingTaskExecuter.java:35)
at org.gradle.internal.Factories$1.create(Factories.java:22)
at org.gradle.cache.internal.DefaultCacheAccess.longRunningOperation(DefaultCacheAccess.java:179)
at org.gradle.cache.internal.DefaultCacheAccess.longRunningOperation(DefaultCacheAccess.java:232)
at org.gradle.cache.internal.DefaultPersistentDirectoryStore.longRunningOperation(DefaultPersistentDirectoryStore.java:142)
at org.gradle.api.internal.changedetection.state.DefaultTaskArtifactStateCacheAccess.longRunningOperation(DefaultTaskArtifactStateCacheAccess.java:83)
at org.gradle.api.internal.changedetection.state.CacheLockReleasingTaskExecuter.execute(CacheLockReleasingTaskExecuter.java:33)
at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:58)
at org.gradle.api.internal.tasks.execution.ContextualisingTaskExecuter.execute(ContextualisingTaskExecuter.java:34)
at org.gradle.api.internal.changedetection.state.CacheLockAcquiringTaskExecuter$1.run(CacheLockAcquiringTaskExecuter.java:39)
at org.gradle.internal.Factories$1.create(Factories.java:22)
at org.gradle.cache.internal.DefaultCacheAccess.useCache(DefaultCacheAccess.java:124)
at org.gradle.cache.internal.DefaultCacheAccess.useCache(DefaultCacheAccess.java:112)
at org.gradle.cache.internal.DefaultPersistentDirectoryStore.useCache(DefaultPersistentDirectoryStore.java:134)
at org.gradle.api.internal.changedetection.state.DefaultTaskArtifactStateCacheAccess.useCache(DefaultTaskArtifactStateCacheAccess.java:79)
at org.gradle.api.internal.changedetection.state.CacheLockAcquiringTaskExecuter.execute(CacheLockAcquiringTaskExecuter.java:37)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:57)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:41)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:51)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:52)
at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:42)
at org.gradle.api.internal.AbstractTask.executeWithoutThrowingTaskFailure(AbstractTask.java:282)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.executeTask(DefaultTaskPlanExecutor.java:48)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.processTask(DefaultTaskPlanExecutor.java:34)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:27)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:89)
at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:29)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61)
at org.gradle.execution.DefaultBuildExecuter.access$200(DefaultBuildExecuter.java:23)
at org.gradle.execution.DefaultBuildExecuter$2.proceed(DefaultBuildExecuter.java:67)
at org.gradle.api.internal.changedetection.state.TaskCacheLockHandlingBuildExecuter$1.run(TaskCacheLockHandlingBuildExecuter.java:31)
at org.gradle.internal.Factories$1.create(Factories.java:22)
at org.gradle.cache.internal.DefaultCacheAccess.useCache(DefaultCacheAccess.java:124)
at org.gradle.cache.internal.DefaultCacheAccess.useCache(DefaultCacheAccess.java:112)
at org.gradle.cache.internal.DefaultPersistentDirectoryStore.useCache(DefaultPersistentDirectoryStore.java:134)
at org.gradle.api.internal.changedetection.state.DefaultTaskArtifactStateCacheAccess.useCache(DefaultTaskArtifactStateCacheAccess.java:79)
at org.gradle.api.internal.changedetection.state.TaskCacheLockHandlingBuildExecuter.execute(TaskCacheLockHandlingBuildExecuter.java:29)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61)
at org.gradle.execution.DefaultBuildExecuter.access$200(DefaultBuildExecuter.java:23)
at org.gradle.execution.DefaultBuildExecuter$2.proceed(DefaultBuildExecuter.java:67)
at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:54)
at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:166)
at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:113)
at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:81)
at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:64)
at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:33)
at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:24)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:35)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:26)
at org.gradle.launcher.cli.RunBuildAction.run(RunBuildAction.java:50)
at org.gradle.api.internal.Actions$RunnableActionAdapter.execute(Actions.java:171)
at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:201)
at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:174)
at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:170)
at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:139)
at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33)
at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22)
at org.gradle.launcher.Main.doAction(Main.java:48)
at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45)
at org.gradle.launcher.Main.main(Main.java:39)
at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:50)
at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:32)
at org.gradle.launcher.GradleMain.main(GradleMain.java:26)
Caused by: java.lang.RuntimeException: Manifest merging failed. See console for more info.
at com.android.builder.AndroidBuilder.doMerge(AndroidBuilder.java:475)
at com.android.builder.AndroidBuilder.mergeLibraryManifests(AndroidBuilder.java:461)
at com.android.builder.AndroidBuilder.processManifest(AndroidBuilder.java:301)
at com.android.builder.AndroidBuilder$processManifest.call(Unknown Source)
at com.android.build.gradle.tasks.ProcessAppManifest.doFullTaskAction(ProcessAppManifest.groovy:65)
at com.android.build.gradle.internal.tasks.IncrementalTask.taskAction(IncrementalTask.groovy:71)
at org.gradle.api.internal.BeanDynamicObject$MetaClassAdapter.invokeMethod(BeanDynamicObject.java:216)
at org.gradle.api.internal.BeanDynamicObject.invokeMethod(BeanDynamicObject.java:122)
at org.gradle.api.internal.CompositeDynamicObject.invokeMethod(CompositeDynamicObject.java:147)
at com.android.build.gradle.tasks.ProcessAppManifest_Decorated.invokeMethod(Unknown Source)
at org.gradle.util.ReflectionUtil.invoke(ReflectionUtil.groovy:23)
at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.doExecute(AnnotationProcessingTaskFactory.java:217)
at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:210)
at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:199)
at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:526)
at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:509)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61)
... 67 more
答案 0 :(得分:128)
找到了解决这个问题的方法:
gradle assemble -info给了我一个提示,即Manifest有不同的SDK版本,不能合并。
我需要编辑我的Manifests和build.gradle文件,一切都恢复正常。
要明确您需要修改 AndroidManifest.xml
中的uses-sdk
<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="16" />
和android
部分,尤其是 build.gradle 文件中的minSdkVersion
和targetSdkVersion
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 14
targetSdkVersion 16
}
}
答案 1 :(得分:91)
一般来说,要查看错误是什么,您可以在Android工作室中看到合并的清单文件
转到您的清单文件
点击底部标签“Merged Manifest”
在右侧屏幕的“其他清单文件”中,检查由于graddle导致的任何错误:
答案 2 :(得分:31)
我希望Lukas Olsen解决方案适用于其他场景,但在我的情况下则完全不同。
我在向项目添加ActionBarShelock时遇到了同样的问题,通过与旧库进行比较,我发现清单中缺少应用程序标记。通过添加一行我修复了我的问题。
</application>
答案 3 :(得分:17)
这似乎是因为Google Play服务需要Android 2.2,即SDK版本8。
在build.gradle
中,确保您的minSdkVersion至少为8
。默认值似乎为7
。所以你有这样的事情:
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 8
targetSdkVersion 16
}
}
dependencies {
compile 'com.android.support:support-v4:13.0.+'
compile 'com.google.android.gms:play-services:3.1.36'
}
答案 4 :(得分:10)
当我在我的应用中添加firebase推送通知时,我也遇到了此错误。但在我的情况下,我做了一个非常愚蠢的错误,我注意了一段时间后。 我在清单中声明了以下代码两次。删除重复声明后。我的问题解决了。
<service android:name="com.evampsaanga.mytelenor.firebase.MyFirebaseInstanceIDService">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
</intent-filter>
</service>`
因此您还要检查应用清单文件中是否有任何重复内容。
答案 5 :(得分:9)
我通过将这一行放在应用程序标记中来解决...
工具:节点=&#34;替换&#34;
答案 6 :(得分:5)
如果您通过Gradle添加ActionBarSherlock等依赖项,则 仔细设置 targetSdkVersion 17 或以上。
当ActionBarSherlock与私有项目不匹配时,以下引用是--info
日志。
[C:\ Me \ Documents \ GitHub \ project \ AndroidManifest.xml:3,C:\ Me \ Documents \ GitHub \ project \ build \ explosion-bundles \ ComActionbarsherlockActionbarsherlock440.aar \ AndroidManifest.xml:2]主要清单但是库使用targetSdkVersion = '17'
:testApp:processDebugManifest FAILED
最好尽可能保持自己的项目targetSdkVersion
。
答案 7 :(得分:5)
可能是因为您的清单中有重复的活动声明。
答案 8 :(得分:4)
可能是清单文件中添加的重复权限。就我而言 “uses-permission android:name =”android.permission.READ_PHONE_STATE“重复了。
答案 9 :(得分:4)
我遇到了同样的问题,而我所做的就是添加
tools:replace="android:icon"
到AndroidManifest的元素覆盖
答案 10 :(得分:3)
我可以看到,如果你有一个带有Android Studio和gradle的多模块项目,IDE会尝试从每个模块合并清单文件到主清单。
如果您有模块A和模块B,并且在A清单中您从B模块声明了一些活动,gradle将在合并时遇到问题。
在清单文件中尝试删除跨模块引用。
答案 11 :(得分:2)
我遇到了同样的问题,其他答案都没有帮助。
就我而言,清单文件中的评论是罪魁祸首:
<manifest [...]
android:installLocation="auto">
<!-- change installLocation back to external after test -->
<uses-sdk [...]
(这可能是一个错误,看看清单其他区域的评论如何不会导致任何问题。)
答案 12 :(得分:2)
就我而言,
我在清单文件中定义了两次活动
<application
android:allowBackup="false"
android:label="@string/app_name"
>
<activity
android:name="com.xxx.ActivityOne"
android:configChanges="orientation|screenSize"
android:windowSoftInputMode="stateHidden|adjustResize" />
//Problem here.. same activity twice define
<activity
android:name="com.xxx.ActivityOne"
android:configChanges="orientation|screenSize"
android:windowSoftInputMode="stateHidden|adjustResize" />
</application>
删除重复的错误后解决。
答案 13 :(得分:2)
当我跑
时,我遇到了类似的问题cordova build android
报告错误:
/home/app/phonegap/helloworld/platforms/android/AndroidManifest.xml:15:5 Error:
uses-sdk:minSdkVersion 7 cannot be smaller than version 10 declared in library /home/app/phonegap/helloworld/platforms/android/build/intermediates/exploded-aar/android/CordovaLib/unspecified/debug/AndroidManifest.xml
Suggestion: use tools:overrideLibrary="org.apache.cordova" to force usage
:processDebugManifest FAILED
失败:构建因异常而失败。
清单合并失败:使用-sdk:minSdkVersion 7不能小于在库/ home / app / phonegap / helloworld / platforms / android / build / intermediates / explosion-aar / android / CordovaLib / unspecified / debug中声明的版本10 /AndroidManifest.xml 建议:使用工具:overrideLibrary =“org.apache.cordova”强制使用
就我而言,
uses-sdk:minSdkVersion 7 cannot be smaller than version 10 declared
,以上解决办法不起作用!但我通过替换来解决它们
<preference name="android-minSdkVersion" value="7" />
as
<preference name="android-minSdkVersion" value="10" />
这两个文件/home/app/phonegap/helloworld/config.xml
,/home/app/phonegap/helloworld/platforms/android/res/xml/config.xml
答案 14 :(得分:1)
在我的情况下,这是因为我的Manifest文件中的重复权限,并且库的minSDKVersion大于我的项目的minSDKVersion。我只是使minSDKVersion相等并编译成功。
答案 15 :(得分:1)
因为这个问题而引发了这个问题 compileSdkVersion 26 buildToolsVersion“26.0.0” 要么 编译'com.android.support:appcompat-v7:26。+'
而不是这个用途 compileSdkVersion 25 buildToolsVersion“25.0.3” 编译'com.android.support:appcompat-v7:25。+'
答案 16 :(得分:1)
您需要添加到AndroidManifest.xml的两件事:
1st:将xmlns:tools =“http://schemas.android.com/tools”添加到清单标记
<manifest xmlns:android=".........
package="...........
xmlns:tools="http://schemas.android.com/tools">
第二:添加工具:将= =“icon”添加到应用程序代码
<application
android:icon=.........
android:label=.......
tools:replace="icon">
答案 17 :(得分:1)
在尝试将我的Urban Airship更新到最新版本时,找到了另一个可能的解决方案。 在我的顶级build.gradle文件中,代码如下所示:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.12.2'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
默认情况下由Android Studio生成。我将其更改为以后的gradle版本,将其替换为:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.13.+'
}
}
之后该项目将会建成。
答案 18 :(得分:1)
如果你使用android studio,你应该通过命令提示符(在windows中)或终端(在UNIX基本操作系统中)运行android studio ,这样你可以在命令提示符下看到关于这个错误的更多细节窗口。
答案 19 :(得分:1)
尝试更改:
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
...
<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="16" />
要:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
...
<uses-sdk xmlns:tools="http://schemas.android.com/tools"
android:minSdkVersion="14" android:targetSdkVersion="16" />
答案 20 :(得分:0)
就我而言,我从React Native Android Docs中获取了代码,并添加了
+ <uses-permission tools:node="remove" android:name="android.permission.READ_PHONE_STATE" />
+ <uses-permission tools:node="remove" android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+ <uses-permission tools:node="remove" android:name="android.permission.READ_EXTERNAL_STORAGE" />
但是忘记了我应该添加到清单中的部分
xmlns:tools="http://schemas.android.com/tools"
添加问题后解决。认为有人像我一样错过了同一行。
祝你有美好的一天!
答案 21 :(得分:0)
转到文件>项目结构>项目并升级gradle版本。 我有这个问题。 之后,我将我的 gradle 6.5 升级到 6.8。 现在完全正常。
答案 22 :(得分:0)
我在安装“React-Native-Image-Picker”库时发生了这个错误。我能够像这样解决它:
错误:
> Task :app:processDebugManifest FAILED
我访问了在完整错误中出现的这条路径:
..\node_modules\react-native-image-picker\android\build\intermediates\library_manifest\debug\AndroidManifest.xml
在查看文件时,我确定了库请求的版本:
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="29" />
我在 /android/app/build.gradle 中修改了以下代码行:
android {
...
defaultConfig {
...
minSdkVersion 21
targetSdkVersion 29
}
}
答案 23 :(得分:0)
答案 24 :(得分:0)
我通过清理和重建项目在Android Studio 3.5中解决了这个问题。
只需单击以构建->重建项目。
答案 25 :(得分:0)
只需在“ gradle.properties”中添加这两行:
android.useAndroidX=true
android.enableJetifier=true
答案 26 :(得分:0)
此错误可能是由于清单文件中的属性为空。
一个例子:
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:logo="@drawable/ic_actionbar"
android:supportsRtl="true"
android:fullBackupContent="">
...
</application>
在上面的示例中,fullBackupContent
为空。
当它更改为android:fullBackupContent="true"
时,它将得到修复。
答案 27 :(得分:0)
也许您有一些重复的活动
像这样:
<activity android:name=".register.RegisterStepsActivity" />
....
<activity android:name=".register.RegisterStepsActivity" />
只评论其中之一
答案 28 :(得分:0)
在我的情况下,我两次写了标签。那是我唯一的错误,那是在代码之前。
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<application tools:targetApi="28" tools:ignore="GoogleAppIndexingWarning" android:networkSecurityConfig="@xml/react_native_config" />
<application application tools:targetApi="28" tools:ignore="GoogleAppIndexingWarning" android:networkSecurityConfig="@xml/react_native_config" >
</application>
`
只需删除应用程序标签即可解决我的问题。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<application tools:targetApi="28" tools:ignore="GoogleAppIndexingWarning" android:networkSecurityConfig="@xml/react_native_config" />
</manifest>
您只应在标签上添加一个标签;可以有多个和,但可以有一个标记。这就是我目前所知道的:)
答案 29 :(得分:0)
在我的情况下,我在清单文件中有一个无效的标记结构,我打开了一个已关闭的活动,但在其中的内部activities (...)
使文件正确性无效,找到它需要两个小时,报告错误遗失/未知<activity>
。
答案 30 :(得分:0)
compile 'com.github.wenchaojiang:AndroidSwipeableCardStack:0.1.1'
如果这是您添加的依赖项,请将其更改为:
compile 'com.github.wenchaojiang:AndroidSwipeableCardStack:0.1.4'
并确保target sdk
不应小于 15 。
答案 31 :(得分:0)
Android Manifest文件中相同活动的重复声明。
答案 32 :(得分:0)
我出于另一个原因遇到了这个问题。
我在Android Studio中构建应用程序,我有一个应用程序模块和另一个模块。 App模块取决于其他模块。
但app模块build.gradle
的一部分是:
<application
android:allowBackup="false"
android:label="@string/app_name"
android:supportsRtl="true">
...
</application>
而其他模块的build.gradle
部分是:
<application
android:allowBackup="true"
android:label="Android Lua"
android:supportsRtl="true">
</application>
因此,我将模块的build.gradle
部分更改为:
<application
android:allowBackup="false"
android:label="@string/app_name"
android:supportsRtl="true">
</application>
问题解决了。
答案 33 :(得分:0)
我遇到了这些错误,因为我没有安装所需的SDK版本。下载并安装build.gradle / Android Manifest文件中的SDK版本后,它已得到解决。
答案 34 :(得分:-1)
在我的上下文中,我删除了manifest.xml中的注释并且它有效。