J'essaye de tester une application. Je reçois un problème étrange avec ce problème car l'application ne parvient pas à déboguer / exécuter. La version du SDK est 28 tandis que le reste est ci-dessous:
Android Studio -v 3.5.3 Gradle -v 3.4.2 Gradle Wrapper -v 5.1.1
La génération Gradle n'a pas réussi à produire un fichier .apk. Il est probable que ce fichier ait été généré sous C: \ Development \\ build, mais l'outil n'a pas pu le trouver.
Existe-t-il un moyen de transmettre ce problème ou une configuration qui peut me permettre de s'exécuter en fournissant ou en donnant le chemin de sortie à Gradle? Le .apk semble généré lorsque l'erreur se déclare.
MISE À JOUR:
Flutter 1.13.9-pre.79 ⢠channel master ⢠https://github.com/flutter/flutter.git Framework ⢠revision 9eb9ea0ffa (6 hours ago) ⢠2020-01-13 21:30:42 -0800 Engine ⢠revision 0235a50843 Tools ⢠Dart 2.8.0 (build 2.8.0-dev.0.0 28c335d5a2)
10 Réponses :
dans mon cas, j'ai une application multi-saveurs comme celle-ci:
flutter run --flavor staging -t lib/main_staging.dart
Donc, si vous voulez exécuter l'application, vous devez écrire le nom de la saveur, puis le nom de la classe qui contient la fonction main ()
android { ... buildTypes { release { // TODO: Add your own signing config for the release build. // Signing with the debug keys for now, so `flutter run --release` works. signingConfig signingConfigs.debug } } flavorDimensions "flavor-type" productFlavors{ development{ dimension "flavor-type" } staging{ dimension "flavor-type" } production{ dimension "flavor-type" } } }
et j'ai résolu mon erreur et construit le .apk
Dans mon cas, le problème était qu'un SDK spécifique au module n'était pas défini pour mon module d'API Android. La solution que j'ai trouvée est:
Open Android Studio->File->Project Structure->Project SDK box->set Android API
Parfois, ce problème se produit lorsque le code suivant est mentionné dans le fichier build.gradle. Commentez ce code et essayez d'exécuter la compilation et cela a réussi pour moi. Si vous souhaitez créer plusieurs fichiers apk, veuillez les utiliser tout en prenant la version de version et supprimez-la pour les versions de débogage. À partir de la capture d'écran que vous avez partagée, je peux voir plusieurs apk générés pour vous et commenter des apks fractionnés vous aidera à résoudre ce problème.
splits { abi { enable true reset() include 'armeabi', 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64' universalApk true } }
Je ne sais pas si cela va vous aider ou non mais j'ai résolu mon problème en suivant la solution-1.
Solution-1
Remplacez votre fichier build.gradle au niveau du projet par le suivant, remplacez les versions et le chemin de classe par les vôtres.
flutter create --org your.organization <your appname>La partie la plus importante: assurez-vous que vous utilisez deux sous-projets
rootProject.buildDir = '../build' subprojects { project.buildDir = "${rootProject.buildDir}/${project.name}" } subprojects { project.evaluationDependsOn(':app') }
Solution-2
Essayez de reconstruire vos fichiers Android renommer le dossier Android en
quelque chose d'autre pour le désactiver comme "android-old" ou autre.
Ensuite, allez dans le dossier parent de votre projet, et exécutez la commande ci-dessous
buildscript { ext.kotlin_version = '1.3.50' repositories { google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.5.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath 'com.google.gms:google-services:4.3.3' } } allprojects { repositories { google() jcenter() } } rootProject.buildDir = '../build' subprojects { project.buildDir = "${rootProject.buildDir}/${project.name}" } subprojects { project.evaluationDependsOn(':app') } task clean(type: Delete) { delete rootProject.buildDir }
Cela reconstruira tous les fichiers manquants. Cela a fonctionné pour moi
pourquoi flutter créer ??
Après une journée de lutte pour résoudre ce problème, j'ai trouvé par où commencer pour vraiment le résoudre. Avant d'insérer un code aléatoire, nous devons rechercher quel est le nom exact de l'apk qu'il génère.
Flutter Build Folder -> app -> sorties -> apk
ici, vous verrez exactement comment s'appelle le nom apk s'il est en mode version ou débogage.
Dans ce cas, si le nom a app-staging.apk ou un autre nom étrange, il y a quelque chose dans votre build gradle qui ne fonctionne pas bien. Dans mon cas, c'était parce que j'avais une saveur qui n'était pas nécessaire avec la mise en scène du nom.
Si ce n'est pas le cas dans votre cas, ce sera sûrement toujours un paramètre de gradation à vérifier. Essayez de passer du mode version au mode débogage ou à l'opposé de "launch.json" , dans ce cas vous pourrez voir si un côté et l'autre non et comprendre les différences de configuration.
J'ajoute la section suivante au fichier app / build / gradle , car je n'ai besoin que d' arm64-v8a versio apk
,
splits { abi { enable true reset() include 'arm64-v8a' universalApk true } }
puis l'erreur s'est produite, donc ma solution de contournement pour résoudre ce problème simplement pour créer un lien symbolique nommé app-debug.apk vers le nouveau app-arm64-v8a-debug.apk nommé dans le dossier build / app / output / flutter-apk / it travaux!
J'ai résolu mon problème en désactivant le partage
splits { abi { enable false } }
Quelle version d'Android Studio, Gradle Plugin pour Android et Gradle Wrapper utilisez-vous? Si je me souviens bien, cette erreur ne s'est produite que sur une ancienne version de l'un d'entre eux. Vous devez être au moins sous Android Studio 3.5.3, en utilisant Gradle Plugin version 3.5.3 et Gradle Wrapper version 5.4.1
@Ovidiu merci d'abord. Maintenant, la version AS est 3.5.3 (en effet), la version GP était 3.4.2 et la version GW était 5.1.1, j'ai mis à jour, mais le problème est toujours présent, j'ai également essayé une
gradle clean build
Ignorez mon commentaire précédent, ce n'est pas ce qui cause l'erreur. J'ai réussi à le répliquer en exécutant 'flutter run' dans un projet qui a configuré des saveurs. Selon votre capture d'écran, vous avez une saveur nommée 'debug', vous voudrez donc exécuter 'flutter run --flavor = debug'
désolé @Ovidiu, je ne suis pas d'accord, j'ai parcouru un formulaire dans github à propos de l'argument de la saveur et de la possibilité que cela cause le problème, mais je peux vous assurer que non. D'après ce cogitas.net/creating-flavors-of-a-flutter-app , j'ai vérifié mon
/android/app/build.gradle
et j'en ai trouvé non. Peut-être y a-t-il un autre moyen de vérifier s'il y a des saveurs et je ne sais pas ... comment avez-vous déterminé le fait que j'ai une saveur dedebug
?il semble que vous ayez des variantes de nom de fichier apk , et certaines solutions de contournement sur github.com/flutter/flutter/issues/44796 montrent que vous devez vérifier le nom des fichiers apk.