web-dev-qa-db-fra.com

Android Studio obtient un nom de package incorrect lors de l'exécution de .apk

J'ai changé le nom de mon paquet de com.mycompany.myapplication en com.mycompany.testapp. 

Tout se passe bien, mais lorsque j'essaie de l'exécuter sur l'émulateur, je reçois: 

La session a été redémarrée Dispositif cible: NexusS [emulator-5554] Téléchargement du fichier chemin local: /home/antony/AndroidStudioProjects/testappProject/testapp/build/apk/testapp-debug-unaligned.apk chemin distant: /data/local/tmp/com.mycompany.myapplication Installation de com.mycompany.myapplication DEVICE Shell COMMAND: pm install -r "/data/local/tmp/com.mycompany.myapplication" pkg: /data/local/tmp/com.mycompany.myapplication Succès

Application de lancement: com.mycompany.myapplication/com.mycompany.testapp.MainActivity . COMMANDE DE L'APPAREIL Shell: am start -D -n "com.mycompany.myapplication/com.mycompany.testapp.MainActivity" -a Android.intent.action.MAIN -c Android.intent.category.LAUNCHER Démarrage: Intention {act = Android.intent.action.MAIN cat = [Android.intent.category.LAUNCHER] cmp = com.mycompany.myapplication/com.mycompany.testapp.MainActivity} Type d'erreur 3 Erreur: La classe d'activité {com.mycompany.myapplication/com.mycompany.testapp.MainActivity} n'existe pas.

Notez que le chemin distant ^^^ est incorrect.

Si je vais à l'émulateur, je peux démarrer l'application à partir du menu, c'est simplement que je reçois cette erreur lorsque j'essaie d'exécuter l'application à partir d'Android Studio.

Je vois aussi dans logcat, en haut à droite, que la liste déroulante m'offre "Pas de filtre" ou "app: com.mycompany.myapplication". Donc, je ne peux même pas déboguer correctement.

D'où proviennent ces références à com.mycompany.myapplication et comment puis-je résoudre ce problème?

39
topper

Je vais répondre, juste au cas où quelqu'un d'autre resterait coincé avec ça. Curieusement, le redémarrage d'Android Studio a résolu le problème. Rien de plus compliqué, rien de moins évident.

11
topper

J'ai essayé de redémarrer Android Studio mais le problème existait toujours.

Alors la solution fonctionne avec moi.

  1. Supprimez le répertoire ~/.gradle/caches/. Vous pouvez le faire lorsque Android Studio est ouvert . (Reportez-vous à pm en installant un nom de package incorrect )
  2. Appuyez sur l'icône "Synchroniser le projet avec les fichiers Gradle" sur Android Studio.
  3. Exécutez le projet et le chemin distant sera correct.
72
Jack Fan

Voici comment je l'ai résolu. Très simple.

Cliquez sur le bouton 'Synchroniser le projet avec les fichiers Gradle' en haut de la fenêtre.

'Sync Project with Gradle Files' button screenshot

Recherchez ce bouton si vous utilisez la version la plus récente d’Android Studio :

'Sync Project with Gradle Files' button in newer AS screenshiot

'Sync Project with Gradle Files' button in latest AS screenshiot

58
Jonas Borggren

J'ai tout mentionné des choses mais aucun effet. Ensuite, j'ai trouvé quelque chose dans build.gradle file et je l’ai modifié conformément au nouveau paquet Cela a fonctionné pour moi.

    defaultConfig {
    applicationId "com.*****.newPackageId"
    minSdkVersion 11
    targetSdkVersion 20
}
23
For Guru

Effacer le cache et redémarrer a fonctionné pour moi.

Allez dans le menu Fichier d'Android Studio et sélectionnez l'option Invalidate Caches/Restart ... 

3
Mukesh

Dans la nouvelle version d'AndroidStudio, telle que la 0.9.1, cette solution fonctionne avec moi:

1) supprimez ~/.greadle/2.1/taskArtifacts
2) projet propre
3) lancer le projet

2
Will Yan

Ce que j’ai finalement fait, c’est de changer l’ID d’application dans le build.gradle, le build et le lancement. Retirez ensuite les applications du téléphone et rétablissez l'ID de l'application. 

1
Boy

J'ai essayé de supprimer le dossier taskArtifacts, d'invalider, ... rien n'a fonctionné.

Ce qui finit par travailler pour moi en forçant une Synchro Gradle résolue pour moi. (Je viens d'ajouter une nouvelle ligne vide dans le build.gradle pour qu'il me demande de synchroniser et après la synchronisation cela a fonctionné).

0
rsc

Si votre application reçoit le même nom que votre MainActivity et que vous avez déjà essayé, essayez de supprimer

Android: label = "MyMainActivity"

tag de Mainactivity, puis exécutez votre application. Cela a fonctionné pour moi :) 

0
Ajji

Mon problème était que certains de mes fichiers .xml (en particulier AndroidManifest.xml) avaient leurs en-têtes modifiés.

En-tête problématique:

<?xml code="1.0" encoding="utf-8"?>

Changer ceci pour:

<?xml version="1.0" encoding="utf-8"?>

Notez que l'en-tête problématique affiche code="1.0" au lieu de version="1.0".

0

J'ai eu exactement le même problème. 

  • Vérifiez d'abord le manifeste.
  • Puis vérifiez vos fichiers de classement
  • Et enfin, il pourrait être intéressant de vérifier les fichiers Java «test» et «androidTest».

Si vous ne savez pas quoi faire avec ces fichiers, consultez les réponses plus complètes ci-dessus.

0
Brian Gaucher