Un projet se synchronise et se construit bien sur Android Studio 3.0 Canary 9. La synchronisation avec Gradle a échoué juste après la mise à niveau vers Android Studio 3.0 Beta 1!
Utilisation de Java 8 fourni avec Android Studio sans piratage sous Debian GNU/Linux 9 (Stretch, stable, à jour).
https://androidstudio.googleblog.com/2017/08/Android-studio-30-beta-2.html
Remarque: des efforts supplémentaires sont nécessaires pour réécrire le code afin d'éviter problématique libs Java pour Android.
https://androidstudio.googleblog.com/2017/08/Android-studio-30-beta-1.html
Plusieurs problèmes se posent (par exemple, des erreurs concernant la méthode polymorphe à la signature sans --min-sdk-version> = 26)
Ces problèmes n'étaient pas présents sur Canary 9!
Error:Execution failed for task ':app:transformClassesWithDexBuilderForDebug'.
> com.Android.build.api.transform.TransformException: org.gradle.tooling.BuildException: com.Android.dx.cf.code.SimException: signature-polymorphic method called without --min-sdk-version >= 26
( La non-résolution de Google )
Même problème sous Windows
Erreur lors de la mise à niveau vers Android Studio 3.0 Beta 1
De Studio
Build: 3.0 Beta 1, AI-171.4243858, 201708032321,
AI-171.4243858, JRE 1.8.0_152-release-915-b01x64 JetBrains s.r.o, OS Linux(AMD64) v4.9.0-3-AMD64 unknown, screens 1920x1080, 1920x1080
Gradle '...' actualisation du projet a échoué
Cause: Java.lang.NullPointerException
at Sun.nio.fs.UnixPath.normalizeAndCheck(UnixPath.Java:77)
at Sun.nio.fs.UnixPath.<init>(UnixPath.Java:71)
at Sun.nio.fs.UnixFileSystem.getPath(UnixFileSystem.Java:281)
at Java.nio.file.Paths.get(Paths.Java:84)
at com.Android.build.gradle.internal.scope.BuildOutput.getOutputPath(BuildOutput.Java:222)
at com.Android.build.gradle.internal.scope.BuildOutputs.lambda$load$2(BuildOutputs.Java:243)
at Java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.Java:193)
at Java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.Java:1376)
at Java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.Java:481)
at Java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.Java:471)
at Java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.Java:708)
at Java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.Java:234)
at Java.util.stream.ReferencePipeline.collect(ReferencePipeline.Java:499)
at com.Android.build.gradle.internal.scope.BuildOutputs.load(BuildOutputs.Java:245)
at com.Android.build.gradle.internal.scope.BuildOutputs.load(BuildOutputs.Java:184)
at com.Android.build.gradle.internal.scope.BuildOutputs.load(BuildOutputs.Java:140)
at com.Android.build.gradle.internal.ide.BuildOutputsSupplier.lambda$get$1(BuildOutputsSupplier.Java:55)
at com.google.common.collect.ImmutableList.forEach(ImmutableList.Java:397)
at com.Android.build.gradle.internal.ide.BuildOutputsSupplier.get(BuildOutputsSupplier.Java:50)
at com.Android.build.gradle.internal.ide.BuildOutputsSupplier.get(BuildOutputsSupplier.Java:35)
at com.Android.build.gradle.internal.ide.AndroidArtifactImpl.getOutputs(AndroidArtifactImpl.Java:134)
at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at Sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.Java:62)
at Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.Java:43)
at Java.lang.reflect.Method.invoke(Method.Java:498)
at org.gradle.tooling.internal.adapter.ProtocolToModelAdapter$ReflectionMethodInvoker.invoke(ProtocolToModelAdapter.Java:592)
at org.gradle.tooling.internal.adapter.ProtocolToModelAdapter$AdaptingMethodInvoker.invoke(ProtocolToModelAdapter.Java:397)
at org.gradle.tooling.internal.adapter.ProtocolToModelAdapter$PropertyCachingMethodInvoker.invoke(ProtocolToModelAdapter.Java:625)
at org.gradle.tooling.internal.adapter.ProtocolToModelAdapter$SafeMethodInvoker.invoke(ProtocolToModelAdapter.Java:647)
at org.gradle.tooling.internal.adapter.ProtocolToModelAdapter$SupportedPropertyInvoker.invoke(ProtocolToModelAdapter.Java:670)
at org.gradle.tooling.internal.adapter.ProtocolToModelAdapter$InvocationHandlerImpl.invoke(ProtocolToModelAdapter.Java:356)
at com.Sun.proxy.$Proxy220.getOutputs(Unknown Source)
at com.Android.tools.idea.gradle.project.model.ide.Android.IdeAndroidArtifactImpl.<init>(IdeAndroidArtifactImpl.Java:57)
at com.Android.tools.idea.gradle.project.model.ide.Android.IdeVariantImpl.lambda$new$0(IdeVariantImpl.Java:60)
at com.Android.tools.idea.gradle.project.model.ide.Android.ModelCache.lambda$computeIfAbsent$0(ModelCache.Java:31)
at Java.util.HashMap.computeIfAbsent(HashMap.Java:1126)
at com.Android.tools.idea.gradle.project.model.ide.Android.ModelCache.computeIfAbsent(ModelCache.Java:31)
at com.Android.tools.idea.gradle.project.model.ide.Android.IdeVariantImpl.<init>(IdeVariantImpl.Java:59)
at com.Android.tools.idea.gradle.project.model.ide.Android.IdeAndroidProjectImpl.lambda$new$4(IdeAndroidProjectImpl.Java:88)
at com.Android.tools.idea.gradle.project.model.ide.Android.ModelCache.lambda$computeIfAbsent$0(ModelCache.Java:31)
at Java.util.HashMap.computeIfAbsent(HashMap.Java:1126)
at com.Android.tools.idea.gradle.project.model.ide.Android.ModelCache.computeIfAbsent(ModelCache.Java:31)
at com.Android.tools.idea.gradle.project.model.ide.Android.IdeModel.copy(IdeModel.Java:74)
at com.Android.tools.idea.gradle.project.model.ide.Android.IdeAndroidProjectImpl.<init>(IdeAndroidProjectImpl.Java:87)
at com.Android.tools.idea.gradle.project.model.ide.Android.IdeAndroidProjectImpl.<init>(IdeAndroidProjectImpl.Java:68)
at com.Android.tools.idea.gradle.project.model.AndroidModuleModel.<init>(AndroidModuleModel.Java:131)
at com.Android.tools.idea.gradle.project.sync.idea.AndroidGradleProjectResolver.populateModuleContentRoots(AndroidGradleProjectResolver.Java:214)
at org.jetbrains.plugins.gradle.service.project.AbstractProjectResolverExtension.populateModuleContentRoots(AbstractProjectResolverExtension.Java:103)
at org.jetbrains.plugins.gradle.service.project.GradleProjectResolver.doResolveProjectInfo(GradleProjectResolver.Java:366)
at org.jetbrains.plugins.gradle.service.project.GradleProjectResolver.access$200(GradleProjectResolver.Java:79)
at org.jetbrains.plugins.gradle.service.project.GradleProjectResolver$ProjectConnectionDataNodeFunction.fun(GradleProjectResolver.Java:902)
at org.jetbrains.plugins.gradle.service.project.GradleProjectResolver$ProjectConnectionDataNodeFunction.fun(GradleProjectResolver.Java:886)
at org.jetbrains.plugins.gradle.service.execution.GradleExecutionHelper.execute(GradleExecutionHelper.Java:218)
at org.jetbrains.plugins.gradle.service.project.GradleProjectResolver.resolveProjectInfo(GradleProjectResolver.Java:139)
at org.jetbrains.plugins.gradle.service.project.GradleProjectResolver.resolveProjectInfo(GradleProjectResolver.Java:79)
at com.intellij.openapi.externalSystem.service.remote.RemoteExternalSystemProjectResolverImpl.lambda$resolveProjectInfo$0(RemoteExternalSystemProjectResolverImpl.Java:37)
at com.intellij.openapi.externalSystem.service.remote.AbstractRemoteExternalSystemService.execute(AbstractRemoteExternalSystemService.Java:59)
at com.intellij.openapi.externalSystem.service.remote.RemoteExternalSystemProjectResolverImpl.resolveProjectInfo(RemoteExternalSystemProjectResolverImpl.Java:37)
at com.intellij.openapi.externalSystem.service.remote.wrapper.ExternalSystemProjectResolverWrapper.resolveProjectInfo(ExternalSystemProjectResolverWrapper.Java:45)
at com.intellij.openapi.externalSystem.service.internal.ExternalSystemResolveProjectTask.doExecute(ExternalSystemResolveProjectTask.Java:66)
at com.intellij.openapi.externalSystem.service.internal.AbstractExternalSystemTask.execute(AbstractExternalSystemTask.Java:139)
at com.intellij.openapi.externalSystem.service.internal.AbstractExternalSystemTask.execute(AbstractExternalSystemTask.Java:125)
at com.intellij.openapi.externalSystem.util.ExternalSystemUtil$3.execute(ExternalSystemUtil.Java:388)
at com.intellij.openapi.externalSystem.util.ExternalSystemUtil$5.run(ExternalSystemUtil.Java:445)
at com.intellij.openapi.progress.impl.CoreProgressManager$TaskRunnable.run(CoreProgressManager.Java:726)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$1(CoreProgressManager.Java:176)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.Java:556)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.Java:501)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.Java:66)
at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.Java:163)
at com.intellij.openapi.progress.impl.ProgressManagerImpl$1.run(ProgressManagerImpl.Java:137)
at com.intellij.openapi.application.impl.ApplicationImpl$2.run(ApplicationImpl.Java:334)
at Java.util.concurrent.Executors$RunnableAdapter.call(Executors.Java:511)
at Java.util.concurrent.FutureTask.run(FutureTask.Java:266)
at Java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.Java:1142)
at Java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.Java:617)
at Java.lang.Thread.run(Thread.Java:745)
UPDATE: Android Studio 3.0 Bêta 3
Avec la liste suivante de corrections de bugs:
On dirait que ce problème est déjà parti. Après la mise à jour de la version 3.0 Beta 2 à la version 3.0 Beta 3, je n'ai pas à nettoyer le projet manuellement.
UPDATE: Android Studio 3.0 Bêta 2
Depuis l’officiel Android Studio 3.0 Beta 2 problèmes connus:
Si vous avez un projet Android Studio existant, c'est utilisant une version alpha du plugin Android 3.0.0 (telle que 3.0.0-alpha9), vous pouvez obtenir l’erreur suivante lorsque vous migrez vers le plug-in Android 3.0.0-beta1 (ou supérieure) et synchronisez votre projet: l'actualisation du projet Gradle a échoué.
Résolvez ce problème en sélectionnant Build> Clean Project dans la barre de menus.
Vous pouvez résoudre ce problème en procédant comme suit:
Build > Clean Project
Référence: https://androidstudio.googleblog.com/2017/08/Android-studio-30-beta-1.html
Lire ici: https://androidstudio.googleblog.com/2017/08/Android-studio-30-beta-1.html
Ou comme je l'ai fait, ouvrez l'onglet "Gradle" et exécutez "nettoyer" puis "assembler" Comme ceci:
Allez à votre droite dans Android Studio, ouvrez l'onglet "gradle", puis dans ": app"/"Tasks"/"build", vous verrez "nettoyer", "assembler" et d'autres tâches.
Exécutez d’abord le nettoyage puis l’assemblage, vous risquez d’obtenir une erreur, mais cela fonctionne toujours et reconstruisez enfin votre projet.
Il existe une solution proposée par Google :
Résolvez ce problème en sélectionnant Build> Clean Project dans la barre de menus. Vous devez effectuer cette action une seule fois pour chaque projet. Vous pouvez ensuite synchroniser vos fichiers de projet avec Gradle en cliquant sur Sync Project dans la barre d’outils.
Les solutions suivantes n'ont pas fonctionné pour moi:
Solution:
Après tout cela, je viens de visiter le dossier ~/.gradle. Celui-ci contient un seul dossier nommé wrapper. C'est ça le problème résolu !!!! Appuyez sur build et la synchronisation et la construction du projet commenceront
récupéré en ligne jusqu'à ce que l'erreur soit corrigée (correction de l'erreur gradle.after a corrigé l'erreur errror.vous pouvez travailler en mode hors connexion.)
1. télécharger la dernière version de -> https://gradle.org/releases
2 .après avoir téléchargé les fichiers Zip, il extrait tous les fichiers dans un dossier (bon travail: -nommez le dossier 'gradle4', placez le disque samelocal où votre studio Android est installé, par exemple, vous avez installé Android studio sur le disque local: c si placez le 'gradle4' sur le disque local c)
3 .Android studio-> menu Fichier-> Paramètres-> construire, Exécution, Déploiement-> Graduer
4 .check-use distribution de gradles locale
5 .donne le chemin du dossier du dégradé à l'option d'accueil du gradéCapture d'écran de l'étape 5 de réglage du dégradé
6 .Activer le référentiel Maven intégréCapture d'écran de Activer le référentiel Maven
clic -> appliquer
Menu de construction-> projet propre
-problème résolu-
Je suis sur Android Studio 3.0 Beta 2, et j’ai trouvé que, en plus des clean
et sync
proposés ici, pour mon projet qui était une base de code Java-Kotlin-mixed, je devais abandonner ma version de Kotlin à 1.1.3-2
, qui est le La version fournie avec IDE, clean
& sync
fonctionne alors, et je peux ensuite ramener la version de Kotlin à 1.1.4
, qui est la plus récente au moment de la rédaction.