Ich habe seit gestern einen Gradle-Fehler beim Bauen bekommen - es kam nur zufällig ...
Vollständige Stapelverfolgung hier:
Mein Projekt hängt von mehreren Bibliotheken ab und wurde bis gestern problemlos erstellt (auch mit den Bibliotheken).
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")
Hat jemand eine Idee, wie man das behebt? es kam nur zufällig ... Full Stacktrace hier:
* 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
quelle
build.gradle
überschreiben nicht die Werte auf meinemAndroidManifest.xml
bei der Ausführunggradle assemble
sdkVersion
überschreibt immer dasAndroidManifest.xml
Zitat der Android-Dokumente: Dieser minSdkVersion-Wert wird nicht verwendet. Es wird immer durch den im Gradle-Build-Skript angegebenen Wert überschrieben. Der Wert von (zum Beispiel) minSdkVersion wird nur verwendet, wenn er nicht in den Build-Skripts build.gradle angegeben ist. Wenn in den Gradle-Build-Skripten angegeben, wird der Manifestwert ignoriert und kann irreführend sein. Daher sollte er entfernt werden, um Mehrdeutigkeiten zu vermeiden.Um den Fehler zu erkennen, können Sie im Allgemeinen die zusammengeführte Manifestdatei in Android Studio anzeigen
Gehen Sie zu Ihrer Manifestdatei
Klicken Sie auf die untere Registerkarte "Zusammengeführtes Manifest".
Überprüfen Sie auf dem rechten Bildschirm unter "Andere Manifestdateien", ob Fehler aufgrund von Graddle vorliegen:
quelle
Ich wünschte, die Lukas Olsen-Lösung funktioniert für andere Szenarien, aber in meinem Fall ist das ganz anders.
Beim Hinzufügen von ActionBarShelock zum Projekt sah ich dasselbe, als ich im Vergleich zur älteren Bibliothek feststellte, dass das Anwendungs-Tag im Manifest fehlt. Durch Hinzufügen einer Zeile habe ich mein Problem behoben.
quelle
<application />
fehlt es. Du hast mich gerettet, danke.Dies scheint darauf zurückzuführen zu sein, dass für Google Play Services Android 2.2 erforderlich ist, bei dem es sich um SDK Version 8 handelt.
In
build.gradle
, stellen Sie sicher ist Ihr minSdkVersion zumindest8
. Der Standardwert scheint zu sein7
. Sie haben also so etwas:quelle
Ich habe es gelöst, indem ich diese eine Zeile in das Anwendungs-Tag eingefügt habe ...
tools: node = "ersetzen"
quelle
application
Tag in derAndroidManifest.xml
Dieser Fehler trat auch auf, als ich Firebase-Push-Benachrichtigungen in meine App einfügte. aber in meinem Fall habe ich einen sehr dummen Fehler gemacht, den ich nach einiger Zeit bemerkt habe. Ich habe den folgenden Code zweimal im Manifest deklariert. Nach dem Entfernen der doppelten Deklaration. Mein Problem wurde gelöst.
Sie überprüfen also auch, ob Ihre App-Manifestdatei doppelt vorhanden ist.
quelle
Möglicherweise liegt es an der doppelten Aktivitätserklärung in Ihrem Manifest.
quelle
Wenn Sie Abhängigkeiten wie ActionBarSherlock von Gradle hinzufügen,
legen Sie Ihre targetSdkVersion 17 oder höher sorgfältig fest .
Das folgende Zitat enthält
--info
Protokolle, wenn ActionBarSherlock nicht mit dem privaten Projekt übereinstimmt.Es wäre besser, das eigene Projekt
targetSdkVersion
so aktuell wie möglich zu halten.quelle
--info
, ich steckte fest und schaffte es, durch Laufen zum Problem zu gelangen./gradlew assemble --info
. In meinem Fall habe ich gles Version 2 in meinem Hauptmanifest deklariert, aber nicht im Bibliotheksprojekt. Wenn Sie es nicht deklarieren, wird standardmäßig Version 1 verwendet, und dies war die Ursache des Fehlers (Inkompatibilität).Ich bin auf dasselbe Problem gestoßen, und was ich getan habe, um es zu beheben, war hinzuzufügen
Element bei AndroidManifest zu überschreiben
quelle
Es kann sich um eine doppelte Berechtigung handeln, die in der Manifestdatei hinzugefügt wurde. In meinem Fall wurde "Verwendungsberechtigung android: name =" android.permission.READ_PHONE_STATE "wiederholt.
quelle
Wenn Sie ein Projekt mit mehreren Modulen mit Android Studio und gradle haben, versucht die IDE, Manifestdateien von jedem Modul zu einem Hauptmanifest zusammenzuführen .
Wenn Sie ein Modul A und ein Modul B haben und im A-Manifest eine Aktivität des B-Moduls deklarieren, wird gradle beim Zusammenführen ein Problem feststellen.
Versuchen Sie , die modulübergreifende Referenz in Manifestdateien zu entfernen .
quelle
In meinem Fall,
Ich definiere die Aktivität zweimal in der Manifestdatei
Nach dem Entfernen des doppelten Fehlers behoben.
quelle
Ich hatte das gleiche Problem und keine der anderen Antworten half.
In meinem Fall war ein Kommentar in der Manifestdatei der Schuldige:
(Dies kann ein Fehler sein, da Kommentare in anderen Bereichen des Manifests keine Probleme verursachen.)
quelle
Beim Laufen stieß ich auf ein ähnliches Problem
welche Fehler melden:
: processDebugManifest FEHLGESCHLAGEN
FAILURE: Build mit einer Ausnahme fehlgeschlagen.
In meinem Fall,
, obige Lösung funktioniert nicht! aber ich löse sie durch ersetzen
wie
in dieser zwei Datei
/home/app/phonegap/helloworld/config.xml
,/home/app/phonegap/helloworld/platforms/android/res/xml/config.xml
quelle
2 Dinge, die Sie zu AndroidManifest.xml hinzufügen müssen:
1. Fügen Sie xmlns: tools = "http://schemas.android.com/tools" zum Manifest-Tag hinzu
2. Tools hinzufügen: replace = "icon" zum Anwendungs-Tag
quelle
Versuchen Sie zu ändern:
Zu:
quelle
Wenn Sie Android Studio verwenden, sollten Sie Android Studio über die Eingabeaufforderung (in Windows) oder das Terminal (unter UNIX-Basisbetriebssystem) ausführen, damit Sie im Eingabeaufforderungsfenster weitere Details zu diesem Fehler sehen können.
quelle
Ich habe eine andere mögliche Lösung dafür gefunden, als ich versucht habe, mein Urban Airship auf die neueste Version zu aktualisieren. In meiner build.gradle-Datei der obersten Ebene sah der Code folgendermaßen aus:
Standardmäßig wie von Android Studio generiert. Ich habe dies in eine spätere Gradle-Version geändert, indem ich diese durch Folgendes ersetzt habe:
Und danach würde das Projekt bauen.
quelle
In meinem Fall lag dies an der doppelten Berechtigung in meiner Manifest-Datei, und die minSDKVersion der Bibliothek war größer als die minSDKVersion meines Projekts. Ich habe gerade diese minSDKVersion gleich gemacht und mit Erfolg kompiliert.
quelle
Dieses Problem tritt aufgrund von compileSdkVersion 26 buildToolsVersion "26.0.0" oder compile 'com.android.support:appcompat-v7:26.+' auf.
Verwenden Sie stattdessen compileSdkVersion 25 buildToolsVersion "25.0.3" compile 'com.android.support:appcompat-v7:25.+'
quelle
In meinem Fall hatte ich das Tag zweimal geschrieben. Das war mein einziger Fehler. Es war vor dem Code
`
Das Entfernen des Anwendungs-Tags löste mein Problem.
Die Punkte sollten Sie nur ein Tag haben; kann mehr als ein und, aber ein Tag haben. Das weiß ich gerade :)
quelle
Vielleicht haben Sie einige doppelte Aktivitäten
So was:
kommentiere einfach einen von ihnen
quelle
Dieser Fehler kann auf ein Attribut zurückzuführen sein, das in der Manifestdatei leer gelassen wurde.
Ein Beispiel:
Das
fullBackupContent
ist im obigen Beispiel leer.Wenn es geändert wird,
android:fullBackupContent="true"
wird es behoben.quelle
Fügen Sie einfach diese beiden Zeilen bei "gradle.properties" hinzu:
quelle
gradle.properties
und bekam diesen Fehler erst, als ich versuchte, ihn in einer Windows-Umgebung auszuführen.Ich hatte diesen Fehler, da ich nicht die erforderliche SDK-Version installiert hatte. Nach dem Herunterladen und Installieren der SDK-Version in der Datei build.gradle / Android Manifest wurde das Problem behoben.
quelle
Ich habe das Problem aus einem anderen Grund getroffen.
Ich habe eine App in Android Studio erstellt und hatte ein App-Modul und ein anderes Modul. Das App-Modul war vom anderen Modul abhängig.
Ein Teil des
build.gradle
App-Moduls ist jedoch:während der
build.gradle
Teil des anderen Moduls ist:Also ändere ich den
build.gradle
Teil des Moduls in:Problem gelöst.
quelle
Duplizierungsdeklaration derselben Aktivität in der Android Manifest-Datei.
quelle
In meinem Fall hatte ich in der Manifestdatei eine ungültige Tag-Struktur, ich hatte eine geöffnete Aktivität geschlossen, aber darin befand sich Erz,
activities (...)
das die Dateikorrektheit ungültig machte. Um es zu finden, dauerte es ziemlich zwei Stunden. Der Fehler wurde als fehlend / unbekannt gemeldet<activity>
.quelle
Wenn dies die Abhängigkeit ist, die Sie hinzugefügt haben, ändern Sie sie in:
und stellen Sie sicher, dass
target sdk
nicht weniger als 15 sein sollte .quelle
Ich habe dieses Problem in Android Studio 3.5 gelöst, indem ich das Projekt bereinigt und neu erstellt habe.
Klicken Sie einfach auf Erstellen -> Projekt neu erstellen.
quelle