web-dev-qa-db-fra.com

Android: erreur lors de l'installation des fichiers APK

J'essaie lentement de faire quelques tâches simples dans Android Studio. L'application suivante est installée sur l'émulateur sans erreur. Mais lorsque j'ai essayé de l'installer sur un périphérique réel Redmi 3S, cette erreur s'est produite:

Unknown failure (Failure - not installed for 0)
Error while Installing APKs

Je suis passé par des questions similaires ici mais dans ces cas l'erreur était due à un débogage non activé, ou à l'acceptation de l'instalation de l'application. Cependant, j’ai permis le débogage et j’ai aussi essayé d’installer une autre application dans Studio et cela a bien fonctionné.

La question est donc probablement de savoir ce qui ne va pas avec le code.

MainActivity.Java

package tlacitko.button;
import Android.support.v7.app.AppCompatActivity;
import Android.os.Bundle;
import Android.view.View;
import Java.io.BufferedReader;
import Java.io.IOException;
import Java.io.InputStream;
import Java.io.InputStreamReader;
import Java.net.MalformedURLException;
import Java.net.URL;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public void sendMessage(View view) {
        new Thread(new Runnable() {
            public void run() {

                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        try{
                            URL url = new URL("http://147.32.186.51:8080");
                           // HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
                            InputStream is = url.openStream();
                            BufferedReader br = new BufferedReader(new
                                    InputStreamReader(is));
                            String s = "";
                        }catch(MalformedURLException ex){

                        }catch(IOException e){
                        }
                    }
                });
            }
        }).start();
    }
}

Et le code XML:

activity_main.xml

    <TextView
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:text="Try to connect the server."
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        Android:id="@+id/button"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_marginLeft="16dp"
        Android:layout_marginRight="7dp"
        Android:layout_marginTop="16dp"
        Android:onClick="sendMessage"
        Android:text="Conncect"
        app:layout_constraintLeft_toRightOf="@+id/editText"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />


</Android.support.constraint.ConstraintLayout>
44
Lucie P.

Suivez ces étapes pour surmonter le problème.

Déconnectez tous les périphériques connectés au système et fermez tous les émulateurs exécutés sur Système . Désactivez la fonction d'exécution instantanée à partir des paramètres . Effectuez une nouvelle construction . Activez la fonction Exécution instantanée à partir des paramètres . construction nette . Connectez votre périphérique/démarrez votre émulateur et assurez-vous qu’il est en ligne . Exécutez le projet en sélectionnant le périphérique/émulateur.

Remarque:

1) Vous ne devriez pas avoir différentes instances d'Android Debug Bridge (adb) en cours d'exécution sur le système.

2) Si vous utilisez Genymotion, assurez-vous de bien utiliser le chemin d'accès au sdk personnalisé mentionné dans les paramètres de Genymotion et mentionné dans les paramètres d'Android Studio.

Ces étapes sont susceptibles de résoudre votre problème, mais il peut également s'agir d'un problème avec les versions d'Android.

93
JPZ

Désactivez Instant Run dans Android Studio. Suivez les étapes ci-dessous:

  1. Fichier >> Paramètres >> Construire, Exécuter, Déployer.

  2. Cliquez sur Instant Run et décochez «Enable Instant Run pour modifier à chaud les modifications de code/ressources sur deploy».

  3. Cliquez sur "Appliquer" et "OK".

Essayez de relancer l'application. Il devrait installer l'application maintenant. Vous pouvez réactiver Instant Run à tout moment.

EDIT (Android Studio 3.0)

Désactiver Instant Run ( Document Android )

Pour désactiver Instant Run:

  1. Ouvrez la boîte de dialogue Paramètres ou Préférences. (Pour Mac, Android Studio -> Préférences)
  2. Accédez à Build, Execution, Deployment> Instant Run.
  3. Décochez la case en regard de Enable Instant Run.
47
Animesh Patra

Pour moi, je viens de faire un nettoyer pour l'application alors tout fonctionne bien.

8
Mohammed Salim

Pour les appareils Redmi et Mi, désactivez MIUI Optimization et redémarrez votre téléphone.

Paramètres> Paramètres supplémentaires> Options pour les développeurs> Optimisation MIUI

Vérifiez la réponse ici

7
Mahesh Cheliya

Je suis maintenant confronté à ce problème, j'ai déjà désinstallé l'apk, maintenant j'utilise Android Studio 3.0 et je souhaite exécuter un apk sur Xiaomi MIX 2 (Android 7.1.1, API 25), mais cela a échoué.

$ adb Shell pm install -t -r "/data/local/tmp/com.package"
Failure [INSTALL_FAILED_USER_RESTRICTED: Install canceled by user]

Et Android Studio me dit: "Il est possible que ce problème soit résolu en désinstallant une version existante de l'apk s'il est présent, puis en le réinstallant." mais j'ai désinstallé cet apk.

 Android Studio popup info

Et je clique sur le bouton "OK", mais cela a également échoué.

$ adb Shell pm uninstall com.package
Unknown failure (at Android.os.Binder.execTransact(Binder.Java:565))
Error while Installing APK

Et enfin, je trouve comment résoudre ce problème. Je n'active pas la fonction "Vérifier les applications via USB", car cet appareil ne peut plus l'activer tant que vous n'êtes pas connecté à un compte xiaomi. Il s'agit d'un nouvel appareil qui n'a pas été connecté.

Étape 1: Allez à «Paramétrage» → recherchez «Options de développeur» dans Système, puis cliquez sur.

Étape 2: ACTIVER «Vérifier les applications via USB» dans la section Débogage.

Étape 3: Essayez à nouveau «Lancer l'application» dans Android Studio!

4
Smiles

Cela pourrait être la compatibilité avec les appareils Xiaomi pour la version Android studio 2.3 et la version du plugin Gradle 2.3.0 avec exécution instantanée.

adb multiple-install les apks divisés renvoient une erreur.

Vous pouvez désactiver l'exécution instantanée ou dans Settings -> Developer options, désactiver Turn on MIUI optimization si vous souhaitez également exécuter l'exécution instantanée.

3
alijandro

Il se peut que la mémoire de votre appareil soit saturée. Si vous testez sur un périphérique physique . Cependant, si vous testez dans Emulator, vérifiez également que l'espace de stockage est disponible ou non. Sinon, vous devez désactiver l'exécution instantanée.

2
GauRav MisHra

Avant d'essayer toutes les suggestions ci-dessus, vérifiez qu'il y a suffisamment d'espace mémoire disponible dans l'appareil . Cela causera également ce problème.

Erreur: Android.os.ParcelableException: Java.io.IOException: Requis en interne uniquement, mais pas assez d'espace

Bonne codage :)

1
happy_Coding

J'avais l'habitude de nettoyer le projet et de résoudre ce problème.

Construire -> Nettoyer le projet.

1
ssowri1

J'ai également rencontré le même problème lorsque j'installais une application dans un nouvel appareil. Cette erreur se produit généralement lorsque l'installation de l'application n'est pas autorisée par l'OS . Cela peut être dû au fait que vous n'avez peut-être pas l'autorisation d'installer l'application sur votre téléphone à partir de n'importe quelle source.

Essayez donc de vérifier le allow install apps via usb dans les options de développement . Si cela ne fonctionne pas, essayez de révoquer tout le usb debugging authorizations, puis essayez d'installer et d'accorder la permission lorsque demandé.

Si cela ne suffit pas, essayez de désactiver l'exécution instantanée comme expliqué dans l'une des réponses ci-dessus.

1
arnav

Réponse simple et directe ...

Décochez Instant Run comme suit ...

Étape: fichier >> Paramètres >> Générer, Exécution, Déploiement >> décochez Activer l'exécution instantanée pour modifier le code/les ressources d'échange à chaud lors du déploiement (activé par défaut).  enter image description here 

Étape 2: Appliquer et cliquer sur Ok  enter image description here 

Étape 3: Exécutez le projet ...

Travailler pour sûr .... @ Ambilpura

0

J'ai eu le même problème, mais mon problème était le manque d'espace sur l'appareil.

Essayez ceci Sur votre appareil, allez dans Paramètres -> Maintenance de l’appareil -> Optimiser maintenant

Une fois que cela est fait, essayez à nouveau.

0
Catalin

Si vous pouvez supprimer toutes vos applications sur l'appareil. J'utilise Android Emulator, j'ai supprimé mes applications via;

Paramètres> Applications et notifications> sélectionnez votre application> désinstaller .

0
yusuf

Désactivez l'exécution instantanée dans Android Studio.Suivez les étapes ci-dessous:

  • Pour l'ancienne version d'Android Studio (Version < Android Studio 3.0) Fichier >> Paramètres >> Construire, Exécution, Déploiement.

  • Cliquez sur Instant Run et décochez All Enable Instant Run to hot swap code/resource changes on deploy.

  • Cliquer sur Apply et OK.

  • Essayez de relancer l'application. Il convient d'installer l'application maintenant. Vous pouvez réactiver Instant Run à tout moment.

  • Pour le nouveau (Android Studio 3.0) Désactiver l'exécution instantanée (par défaut)

Pour désactiver Instant Run:

  • Ouvrez le Settings ou Preferences dialog. (Pour Mac, Android Studio -> Préférences)

  • Accédez à Build, Execution, Deployment > Instant Run.

  • Décochez la case en regard de Activer l'exécution instantanée.

  • Nettoyer le projet et essayez de réexécuter l'application. Il devrait install l'application maintenant. Vous pouvez être à nouveau enable Instant Run à tout moment.

0
Swapnil Akubattin

Déconnectez le périphérique du système et dans Android studio Allez dans Fichier -> Cache invalide et/Redémarrage . Ça marche....

0
VAIBHAV NERLE

Vous pouvez suivre cette étape pour vérifier à nouveau Instant Run:

  1. Fichier >> Paramètres >> Construire, Exécution, Déploiement.
  2. Cliquez sur Exécuter instantanément et cochez la case "Activer l'exécution instantanée pour modifier à chaud les modifications de code/ressources lors du déploiement".
  3. Cliquez sur "Appliquer" et "OK".

mais parfois, revérifier ne fonctionne pas.

Vous devez temporairement désactiver votre antivirus et Windows Defender si vous exécutez votre déploiement dans un PC WIN

Suivez ces étapes:

  1. Désactiver votre antivirus ou Windows Defender pendant 15/30min
  2. Effectuer une construction propre.
  3. Projet de reconstruction
  4. Exécuter le projet sur votre émulateur ou dans vos appareils

Note:

  • \ app\build\intermediates\split-apk\debug\slices\slice_5.apk obtenir des logiciels malveillants concernés.
0
Eshan Chattaraj