25
votes

La génération d'apk signé échoue avec build \ app \ intermediates \ flutter \ profile \ libs.jar (le système ne trouve pas le chemin spécifié)

Je suis sur Android Studio 4. Gradle est 6.1.1. Et j'ai créé un nouveau projet de flutter à partir d'Android Studio. Ensuite, j'ai ouvert le projet en tant que projet Android. Il existe une telle option dans Outils-> Flutter. Ce qui a abouti à la synchronisation gradle. Cela a réussi. Mais quand j'essaye de générer un apk signé avec mes clés. J'ai compris. Erreur

\path\to\my\project\build\app\intermediates\flutter\profile\libs.jar (The system cannot find the path specified)

Il n'y a pas de répertoire de profils à l'emplacement indiqué. Mais il existe des répertoires Debug et Release qui contiennent tous deux libs.jar. J'ai cherché tous les autres sur le net pour ce problème. Rien trouvé.

Supplémentaire: je peux créer un apk de débogage sans problème.


3 commentaires

suite à cela depuis que j'ai rencontré bizarrement cela maintenant et je n'ai aucune idée de comment cela est arrivé tout d'un coup. était-ce peut-être après une mise à niveau de flutter?


J'ai trouvé une solution pour cela. Laissez-moi le poster.


stackoverflow.com/questions/62394034/...


6 Réponses :


37
votes

J'ai trouvé une solution à ce problème en recherchant dans divers problèmes que les gens avaient signalés sur github à ce sujet.

Ceci est juste une solution de contournement.

Vous pouvez obtenir deux types d'erreur. Pour moi, le système n'a pas pu trouver le profile/libs.jar , pour certaines personnes, l'erreur était pour debug/libs.jar . Si le problème concerne le profil , vous devez d'abord exécuter votre application en mode profil, puis générer un apk signé (ou créer et exécuter en mode version). Pour exécuter en mode profil, utilisez flutter run --profile . Il existe également une option de profil dans le menu Run dans Android Studio.

Si l'erreur concerne debug/libs.jar , commencez par créer la version de débogage (et également le mode profil), puis essayez de générer un apk signé. Par défaut, flutter run compile en mode débogage.

Ce problème provient évidemment de la mise à jour du android studio gradle plugin Gradle et du android studio gradle plugin .

Voici la solution de contournement par Jwiggiff sur la page github.


7 commentaires

Je n'ai même jamais remarqué qu'il y avait un dossier de profil dans src \ app \ avec le dossier principal. Je me demande à quoi cela sert: D profiing? J'ai également eu un problème avec debug / libs.jar mais une fois compilé vers l'émulateur, il est retourné à l'erreur profile / libs.jar. d'une manière ou d'une autre, je ne peux pas non plus déployer sur l'émulateur. pourrait être un problème de gradle ... et je pense que ce désordre a commencé après avoir été forcé de passer à gradle 6.1.1 à partir de 5.6.2


pour l'instant, je suis revenu au zip d'origine de gradle 5.6.2 et à com.android.tools.build:gradle:3.5.2 dans build.gradle. que la mise à niveau vers 4.0.0 et 6.1.1.zip est la cause du problème


Les mises à jour sont censées rendre ces choses plus faciles et plus pratiques. Maintenant, je perds plus de temps à comprendre ce qui n'a pas fonctionné dans le système de construction que la résolution de problèmes réels dans mon code. Quel gaspillage de progrès.


Maintenant, chaque fois que je dois obtenir l'apk. J'ai besoin de le construire trois fois avec trois options.


lol im pas perdre de temps avec ça. Je suis revenu à l'ancienne version jusqu'à ce qu'ils le réparent. ils l'ont confirmé comme un bogue.


Exécution de Run-> Profile et j'ai pu créer apk avec succès


comme @chitgoks l'a mentionné, j'ai remplacé com.android.tools.build:gradle:4.0.0 ~> 3.5.2 Cela a fait l'affaire. L'erreur est partie maintenant!



5
votes

Si vous ne vous souciez pas de lintOptions vous pouvez ajouter ce code dans le fichier build.gradle l'application:

android {
    lintOptions { 
        checkReleaseBuilds false
        abortOnError false
    }
}


2 commentaires

Ne résout pas réellement le problème. Il suffit de sauter le test. Signifie que le réel persiste encore


@FardeenKhan Déjà dit ci-dessus, utilisez-le uniquement si vous ne vous souciez pas de lintOptions



12
votes

Ce problème est avec le dernier gradle 4.0.0

Passer du chemin de classe 'com.android.tools.build:gradle:4.0.0'

au classpath 'com.android.tools.build:gradle:3.6.3' de classpath 'com.android.tools.build:gradle:3.6.3'

ou classpath 'com.android.tools.build:gradle:3.5.0' (a fonctionné pour moi)


0 commentaires

1
votes

C'est un truc

Exécutez le terminal pour le projet de flutter actuel, puis tapez

flutter install build/app/outputs/flutter-apk/app-release.apk

pour obtenir ce résultat de réussite:

Running Gradle task 'assembleRelease'...                                
Running Gradle task 'assembleRelease'... Done                      41.8s
✓ Built build/app/outputs/flutter-apk/app-release.apk (23.6MB).

puis tapez

flutter build apk

obtenir

Running Gradle task 'assembleDebug'...                                  
Running Gradle task 'assembleDebug'... Done                        22.7s
✓ Built build/app/outputs/flutter-apk/app-debug.apk.

puis installez cette Release APK sur l'appareil.

flutter run

Maintenant, vous avez Release App sur votre appareil.

p / s: cette erreur de saut de cas

  • Execution failed for task ':app:lintVitalRelease'.

  • Failed to transform libs.jar to match attributes

  • Execution failed for JetifyTransform

  • Transform's input file does not exist

vous avez déjà.


0 commentaires

1
votes

cela fonctionnera.

flutter build apk --debug flutter build apk --profile flutter build apk --release

mais testez l'apk avant de le partager.

même cela ne fonctionne pas, le changement de gradle de 4.x à 3.6.x cela fonctionnera.


3 commentaires

Comment recréez-vous le dossier Android?


édité ma réponse.


supprimez simplement le dossier android et exécutez la commande flutter create.



0
votes

Cela devrait également fonctionner correctement

flutter build apk --profile


0 commentaires