web-dev-qa-db-fra.com

la désinstallation d'Adb à échoué

J'écris des exemples d'applications.
Après avoir débogué ces applications, je ne vois pas de bouton de désinstallation dans la gestion des applications de mon appareil.
Lorsque je désinstalle mon compte adb, il est toujours indiqué Failure without any reason.
Dans DDMS, j’ai vu que mon apk était stocké dans /data/app/com.k2g.leaveDemo-1.apk.
Je ne suis pas sûr de ce qui me manque.
Je dois toujours réinitialiser mon appareil pour me débarrasser de ces applications :(

Dois-je signer quelque chose?
Dois-je faire quelque chose en mode débogage?
Ou cela dépend-il de la version?

J'utilise Samsung S2.

33
user1848385

Oui, la gestion des appareils mobiles apporterait ses propres problèmes, mais je parie que "l'échec" est un problème de dos2unix. Sur mes machines Linux, adb ajoute une nouvelle ligne DOS qui provoque "Echec" car la désinstallation considère que le caractère CR fait partie du nom du paquet. Supprimez également '-1.apk' de la fin du nom du fichier package-1.apk. 

adb root
adb Shell
pm list packages
pm uninstall com.Android.chrome

Dans mon cas, j'ai un téléphone qui est en permanence en "mode sans échec", donc seules les applications de/system/app/ont une chance de fonctionner. Je les installe donc pour que les fichiers .apk soient copiés, puis désinstalle en bloc et copie dans/system/app /, essuie le/cache et redémarre. Maintenant, j'ai plus d'applications en cours d'exécution même si dans mdoe sûr.

# adb root
# pm list packages -3 > /root/bulkuninstall.txt
# vi /root/bulkuninstall.txt  and check ^M characters at end of each line.   
   If ^M, then must run dos2unix /root/bulkuninstall.txt.  
   Remove '-1.apk' using vi search and replace:  
        :%s/-1\.apk//g 
   Or sed...

# cp /data/app/* /storage/sdcard1/APKs/
# for f in `cat /root/bulkuninstall.txt`; do echo $f; pm uninstall $f; done;
# 
# echo Now remount system and copy the APK files to /system/app/
# mount | grep system
# mount -o remount,rw /dev/block/(use block device from previous step)  /system 
# cp /storage/sdcard1/APKs/* /system/app/
# reboot

effacer le cache allumer.

45
rjt

Ce n'est pas une réponse exacte, mais si vous souhaitez désinstaller l'application parce que vous avez un fichier .apk à installer, vous pouvez essayer ceci:

adb install -r yourapp.apk

L'option -r indique à adb de réinstaller l'application.

31
edg

S'il s'agit d'une application interne Android, vous devrez peut-être:

  • adb Shell
  • montez-le, remettez-le-yaffs2/dev/block/mtdblock3/system
  • rm/system/app/your_app
  • rm/data/data/your_app
  • supprime toutes les entrées dans /data/system/packages.xml 
  • supprime les entrées dans /data/system/packages.list
  • éditez AndroidManifest.xml et débarrassez-vous d'Android: sharedUserId = "Android.uid.shared"

C’est à vos risques et périls; - |, essayez d’abord dans l’émulateur ...

17
powder366

Je suppose que vous activez developer mode sur votre appareil Android et que vous êtes connecté à votre appareil et que vous disposez d'un accès Shell (adb Shell).

Une fois cela fait, vous pouvez désinstaller l'application avec cette commande pm uninstall --user 0 <package.name>. 0 est l'ID racine -cette façon de faire, vous n'avez pas besoin de trop root pour votre périphérique. 

Voici un exemple de ce que j'ai fait sur mon appareil huawei p110 lite.

# gain Shell access
$ adb Shell

# check who you are
$ whoami
Shell

# obtain user id
$ id
uid=2000(Shell) gid=2000(Shell)

# list packages
$ pm list packages | grep google                                                                                                                                                         
package:com.google.Android.youtube
package:com.google.Android.ext.services
package:com.google.Android.googlequicksearchbox
package:com.google.Android.onetimeinitializer
package:com.google.Android.ext.shared
package:com.google.Android.apps.docs.editors.sheets
package:com.google.Android.configupdater
package:com.google.Android.marvin.talkback
package:com.google.Android.apps.tachyon
package:com.google.Android.instantapps.supervisor
package:com.google.Android.setupwizard
package:com.google.Android.music
package:com.google.Android.apps.docs
package:com.google.Android.apps.maps
package:com.google.Android.webview
package:com.google.Android.syncadapters.contacts
package:com.google.Android.packageinstaller
package:com.google.Android.gm
package:com.google.Android.gms
package:com.google.Android.gsf
package:com.google.Android.tts
package:com.google.Android.partnersetup
package:com.google.Android.videos
package:com.google.Android.feedback
package:com.google.Android.printservice.recommendation
package:com.google.Android.apps.photos
package:com.google.Android.syncadapters.calendar
package:com.google.Android.gsf.login
package:com.google.Android.backuptransport
package:com.google.Android.inputmethod.latin

# uninstall gmail app
pm uninstall --user 0 com.google.Android.gms
14
Lukasz Dynowski

On dirait que vous avez une application contenant un administrateur de périphérique caché comme celui-ci: http://www.symantec.com/security_response/writeup.jsp?docid=2013-060411-4146-99

vous ne pouvez désinstaller une telle application que lorsque vous désactivez d'abord l'administrateur du périphérique. Vous pouvez utiliser https://play.google.com/store/apps/details?id=com.trendmicro.mtrt.hiddenDAcleaner pour le désactiver ou le faire vous-même en envoyant l'intention à l'application invoquée. le récepteur qui désactive l'administrateur du périphérique.

8
reox

Je trouve que adb Shell pm uninstall <package> fonctionne de manière constante, alors que adb uninstall <package> ne fonctionne pas. 

7
Christopher Pickslay

okey j'étais dans la même situation, j'ai essayé tout ça sans résultat .. et la dernière réponse était proche ..

pour obtenir le bon nom de votre paquet, procédez comme suit:

adb Shell pm list packages | grep "name of your app here"

vous devriez voir le bon nom de votre application .. alors maintenant celui-ci fonctionne:

adb uninstall com.your-real-app-name

enfin la commande run fonctionne à nouveau:

ionic run Android
6
bySamo

Essayez de désactiver "Instant Run" à partir de la fenêtre de configuration

5
no_cola

Ouvrez votre manifeste d'application et vérifiez d'abord le package de l'application.

Après cela, assurez-vous que votre appareil est configuré en mode débogueur.

Vérifiez si ADB peut interagir avec votre appareil:

périphériques adb

Si votre appareil est répertorié, exécutez:

désinstaller adb PACKAGE_WRITTEN_IN_MANIFEST

3
noni

Peut-être essayez-vous de désinstaller une application qui est un administrateur de téléphone.

Pour pouvoir le désinstaller, accédez à Paramètres> Sécurité> Administrateurs téléphoniques . Si l'application est répertoriée, décochez-la et confirmez l'opération.

Ensuite, vous devriez pouvoir le désinstaller à l'aide de la zone des paramètres de l'application ou de l'adb.

2
fferracioli

Vous devriez avoir à supprimer manuellement les applications. allez dans Configuration-> Gestion des applications -> Exécuter l'application, appuyez dessus et vous pouvez supprimer, arrêter les applications à partir de là.

2
Anam Akram

Si vous rencontrez des problèmes lors de la désinstallation via adb, je peux vous recommander l'outil suivant:

https://github.com/patrickfav/uber-adb-tools

vous pouvez utiliser des caractères génériques et prendre en charge plusieurs périphériques. La gestion des erreurs est également meilleure que celle de Vanilla ADB (mais l’utilise en arrière-plan, bien sûr). Travaillera sur votre plate-forme.

 console showcase

Clause de non-responsabilité: je suis le développeur

1
patrickf

Cela peut être quelque chose d'aussi simple que de taper le nom du paquet dans le mauvais cas ... 

J'ai eu le même problème - il s'est avéré que je saisissais le nom du paquet en minuscules lorsque le nom du paquet en question contenait des caractères majuscules.

adb uninstall -k <packageName - eg. com.test.app>

(Si vous désinstallez explicitement, vous ne voulez probablement pas le -k qui conserve les données de l'application et les répertoires de cache autour.)

1
Bob

Vous avez le nom de l'apk et pas le nom du package: Vous devez d'abord connaître le nom du package. Fot cette cassette:

adb shel pm list packages

Une fois que vous avez le nom du paquet (soyez prudent, le nom du paquet est comme com.intel .... et pas package: com.intel ...), bande:

adb Shell pm désinstallez -k "nom_package"

et bingo!

1
AymenSiala

J'ai eu une instance d'un émulateur en cours d'exécution et un périphérique connecté. 

Lorsque j'ai exécuté la commande «adb -d uninstall PACKAGE_NAME», le message d'erreur «DELETE_FAILED_INTERNAL_ERROR» a été détecté, mais lorsque j'ai tué l'instance Emulator, le processus de désinstallation a abouti.

0
Codelearner

Vous pouvez suivre les étapes ci-dessous pour désinstaller l'application du périphérique à l'aide de la commande Invite.

  1. exécutez la commande: adb -s [nom_périphérique] uninstall -k [nom_package] . cette commande conservera les données et la mémoire cache du périphérique, mais supprimera l'application du périphérique.
  2. Pour supprimer les données et mettre également en cache le périphérique ainsi que l'application, exécutez la commande ci-dessous . Adb Shell pm uninstall -k [nom_package].

si le résultat est positif, votre application est désinstallée avec succès '

0
divaPrajapati09

Si vous utilisez un appareil Xiaomi, vous devez vous connecter au compte MI.

Après une inscription réussie, vous pouvez installer et désinstaller via ADB. 

0
Pinak Gauswami

J'ai eu un échec lors de l'utilisation d'adb Shell, désinstallez com.package.app/

supprimé/(donc adb Shell désinstaller com.package.app) et cela fonctionne

0
Nemanja Velickovic

Dans mon cas, je rencontre souvent ce problème lorsque je complète une application en mode débogage, puis que j'essaie d'installer l'application signée Google.

C’est parce que les deux applications ont le même nom de package, mais des signatures différentes… .. Depuis que je suis passé à Android, je reçois parfois cette erreur si je désinstalle l’application via les paramètres\Applications… l'application est installée dans un autre profil d'utilisateur et désinstallez-la dans tous les comptes d'utilisateurs.

0
Radon8472

Assurez-vous de saisir le nom complet du package avec le nom de l'application:

com.domain.app
0
powder366

Essayez de désactiver "Instant run" de la préférence! Cela fonctionne pour moi.

 enter image description here

0

Cela a fonctionné pour moi:

C'est le répertoire où sont stockés tous les fichiers APK:

cd /system/app

Listez les:

ls

Choisissez-en un à supprimer.

pm install -r <app_to_remove>.apk

Exemple:

$ pm install -r Google-Play-services.apk
        pkg: Google-Play-services.apk
Success


J'ai remarqué que je reçois un échec si l'application que je tente de supprimer est en cours d'exécution. Tuez-la d'abord.

De plus, j'ai remarqué que vous pourriez avoir à exécuter (sur un périphérique enraciné):

$ su
# mount -o remount +rw /
0
Geremia