Je reçois une erreur de classement dans la construction depuis hier - cela vient juste au hasard ...
Plein stacktrace ici:
Mon projet dépend de plusieurs bibliothèques et il a été construit sans problème jusqu'à hier (même avec les bibliothèques)
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")
Quelqu'un a une idée comment résoudre ce problème? il vient juste au hasard ... Full stacktrace here:
* 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
Trouvé la solution à ce problème:
gradle assemble -info m'a laissé entendre que les manifestes ont différentes versions du SDK et ne peuvent pas être fusionnés.
J'avais besoin d'éditer mes fichiers Manifestes et build.gradle et tout fonctionnait à nouveau.
Pour être clair, vous devez éditer le uses-sdk
dans le AndroidManifest.xml
<uses-sdk Android:minSdkVersion="14" Android:targetSdkVersion="16" />
et la section Android
, en particulier minSdkVersion
et targetSdkVersion
dans le fichier build.gradle
Android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 14
targetSdkVersion 16
}
}
De manière générale, pour voir quelle est l'erreur, vous pouvez voir le fichier manifeste fusionné dans le studio Android
Allez sur votre fichier manifeste
Cliquez sur l'onglet inférieur "Manifest fusionné"
Sur l'écran de droite, dans "Autres fichiers manifestes", recherchez les erreurs éventuelles dues à graddle:
Je souhaite que la solution Lukas Olsen fonctionne pour d'autres scénarios, mais dans mon cas, c'est très différent.
J'ai fait face au même en ajoutant ActionBarShelock au projet, en comparant avec l'ancienne bibliothèque, j'ai constaté que la balise d'application est manquante dans le manifeste. En ajoutant une ligne, j'ai corrigé mon problème.
</application>
Cela semble être dû au fait que les services Google Play nécessitent Android 2.2, version du SDK version 8.
Dans build.gradle
, assurez-vous que votre minSdkVersion est au moins 8
. La valeur par défaut semble être 7
. Donc, vous avez quelque chose comme ça:
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'
}
j'ai résolu en mettant cette ligne dans la balise d'application ...
outils: noeud = "remplacer"
J'ai également été confronté à cette erreur lors de l'ajout de notifications Firebase dans mon application. mais dans mon cas, je faisais une erreur très stupide que j'ai remarquée après un certain temps. J'ai déclaré ci-dessous le code dans manifeste deux fois. Après avoir supprimé la déclaration en double. mon problème est résolu.
<service Android:name="com.evampsaanga.mytelenor.firebase.MyFirebaseInstanceIDService">
<intent-filter>
<action Android:name="com.google.firebase.INSTANCE_ID_EVENT" />
</intent-filter>
</service>`
vous devez donc également vérifier s’il existe des doublons dans le fichier manifeste de votre application.
Si vous ajoutez des dépendances telles que ActionBarSherlock de Gradle,
Réglez soigneusement votre targetSdkVersion 17 ou supérieur.
La citation ci-dessous est --info
enregistre quand ActionBarSherlock ne correspond pas à un projet privé.
[C:\Me\Documents\GitHub\projet\AndroidManifest.xml: 3, C:\Me\Documents\GitHub\projet\build\paquets-explosés\ComActionbarsherlockActionbarsherlock440.aar\AndroidManifest.xml: 2] Le manifeste principal a été libéré, mais la bibliothèque utilise targetSdkVersion = '17 '
: testApp: processDebugManifest FAILE
Il serait préférable que votre propre projet targetSdkVersion
soit le plus récent possible.
C'est peut-être à cause d'une déclaration d'activité en double dans votre manifeste.
Il pourrait s'agir d'une autorisation dupliquée ajoutée dans le fichier manifeste. Dans mon cas, "uses-permission Android: name =" Android.permission.READ_PHONE_STATE "a été répété.
Je suis tombé sur le même problème et ce que j'ai fait pour le réparer a été d'ajouter
tools:replace="Android:icon"
à l'élément sur AndroidManifest pour remplacer
Pour ce que je peux voir, si vous avez un projet multi-module avec Android Studio et dégradé, le IDE essaie de fusionner les fichiers manifestes de chaque module dans un manifeste principal.
Si vous avez un module A et un module B et que, dans le manifeste A, vous déclarez une activité du module B, gradle contiendra un problème lors de la fusion.
Essayez en supprimant la référence entre les modules dans les fichiers manifestes.
Je suis tombé sur un problème similaire, quand je cours
cordova build Android
qui signalent des erreurs:
/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 a échoué
ECHEC: La construction a échoué avec une exception.
La fusion du manifeste a échoué: uses-sdk: minSdkVersion 7 ne peut pas être plus petite que la version 10 déclarée dans la bibliothèque/home/app/phonegap/helloworld/plates-formes/Android/build/intermediates/exploded-aar/Android/CordovaLib/non spécifié/debug/AndroidManifest. xml Suggestion: utilisez tools: overrideLibrary = "org.Apache.cordova" pour forcer l'utilisation
Dans mon cas,
uses-sdk:minSdkVersion 7 cannot be smaller than version 10 declared
, la solution ci-dessus ne fonctionne pas! mais je les résout par remplacer
<preference name="Android-minSdkVersion" value="7" />
comme
<preference name="Android-minSdkVersion" value="10" />
dans ces deux fichiers /home/app/phonegap/helloworld/config.xml
, /home/app/phonegap/helloworld/platforms/Android/res/xml/config.xml
Dans mon cas,
Je définis l'activité deux fois dans le fichier manifeste
<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>
Après avoir supprimé l'erreur de duplication résolue.
J'ai eu le même problème et aucune des autres réponses n'a aidé.
Dans mon cas, un commentaire dans le fichier manifeste était le coupable:
<manifest [...]
Android:installLocation="auto">
<!-- change installLocation back to external after test -->
<uses-sdk [...]
(Cela peut être un bug, vu que les commentaires dans les autres zones du manifeste ne causent pas de problèmes.)
BuildToolsVersion "26.0.0" ou compiler 'com.Android.support:appcompat-v7:26.+' à cause de cette émission.
compileSdkVersion 25 buildToolsVersion "25.0.3" compile 'com.Android.support:appcompat-v7:25.+' au lieu de cette utilisation
si vous utilisez Android studio, vous devez exécuter le studio Android par le biais de invite de commande (sous Windows) ou terminal (sous UNIX de base) pour pouvoir voir plus de détails sur cette erreur dans la fenêtre d'invite de commande.
Trouvez une autre solution possible pour cela lorsque vous essayez de mettre à jour mon Urban Urban vers la dernière version. Dans mon fichier build.gradle de niveau supérieur, le code ressemblait à ceci:
// 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()
}
}
par défaut, tel que généré par Android Studio. J'ai changé cela pour une version ultérieure en remplaçant ceci par:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.Android.tools.build:gradle:0.13.+'
}
}
Et après cela, le projet se construirait.
2 choses à ajouter à AndroidManifest.xml:
1er: add xmlns: tools = "http://schemas.Android.com/tools" à la balise manifeste
<manifest xmlns:Android=".........
package="...........
xmlns:tools="http://schemas.Android.com/tools">
2ème: Ajouter des outils: replace = "icon" à la balise d'application
<application
Android:icon=.........
Android:label=.......
tools:replace="icon">
Essayez de changer:
<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" />
Dans mon cas, c'était à cause de l'autorisation dupliquée dans mon fichier Manifest et minSDKVersion de la bibliothèque était supérieur à minSDKVersion de mon projet. Je viens de rendre cette minSDKVersion égale et compilée avec succès.
Cette erreur peut être due à un attribut laissé vide dans le fichier manifeste.
Un exemple:
<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>
La fullBackupContent
est vide dans l'exemple ci-dessus.
Quand il est changé en Android:fullBackupContent="true"
il sera corrigé.
J'ai résolu ce problème dans Android Studio 3.5 en nettoyant et en reconstruisant le projet.
Cliquez simplement sur Construire -> Reconstruire le projet.
Peut-être que vous avez des activités en double
Comme ça:
<activity Android:name=".register.RegisterStepsActivity" />
....
<activity Android:name=".register.RegisterStepsActivity" />
juste commenter l'un d'entre eux
J'ai eu ces erreurs car je n'avais pas la version requise du SDK installée. Après avoir téléchargé et installé la version du SDK présente dans le fichier manifeste build.gradle/Android, le problème a été résolu.
compile 'com.github.wenchaojiang:AndroidSwipeableCardStack:0.1.1'
S'il s'agit de la dépendance que vous avez ajoutée, remplacez-la par:
compile 'com.github.wenchaojiang:AndroidSwipeableCardStack:0.1.4'
et assurez-vous que target sdk
ne doit pas être inférieur à 15.
J'ai rencontré le problème dans une autre raison.
Je construisais une application dans Android Studio et j'avais un module d'application et un autre. Le module d'application dépend de l'autre module.
Mais une partie de build.gradle
du module d'application est:
<application
Android:allowBackup="false"
Android:label="@string/app_name"
Android:supportsRtl="true">
...
</application>
alors que la partie build.gradle
de l'autre module est:
<application
Android:allowBackup="true"
Android:label="Android Lua"
Android:supportsRtl="true">
</application>
Donc, je change la partie build.gradle
du module en:
<application
Android:allowBackup="false"
Android:label="@string/app_name"
Android:supportsRtl="true">
</application>
Problème résolu.
Dans mon cas, j'avais écrit la balise deux fois. C'était ma seule erreur. C'était avant le code`
<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>
`
Le simple fait de supprimer la balise d'application a résolu mon problème.
<?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>
Les points que vous devriez avoir un seul tag; peut avoir plus d'un et, mais un seul tag. C'est ce que je sais en ce moment :)
Déclaration de duplication de la même activité dans Android fichier manifeste.
Ajoutez simplement ces deux lignes à "gradle.properties":
Android.useAndroidX=true
Android.enableJetifier=true