3
votes

L'émulateur Android se ferme sans avertissement

J'utilise Linux Pop! OS 19.04 et j'ai essayé d'installer l'émulateur Android. Il démarre mais il se ferme dans environ 30 secondes à chaque fois.

J'ai installé Java 8 via 'OpenJDK-8-JDK' et je peux réussir à créer des packages Android et à les charger sur mon téléphone sans problème.

Après avoir installé le SDK Android dans / usr / local / android, voici ce que j'ai fait;

  1. Allez dans le répertoire des outils

    alias tnsa="tns run android --device emulator-5554"   # Run in emulator
    alias em="$ANDROID_HOME/emulator/emulator -avd samsung_galaxy_s8 -gpu guest -no-audio -verbose" 
    alias eml="while true; do pkill -f android; sleep 2; tnsa &; em &> ~/emulator.log; done"
    
  2. Installer les images système (doit être effectué en tant que root)

    08-28 09:48:58.109 12476 12476 W art     : Unexpected CPU variant for X86 using defaults: x86
    08-28 09:48:58.114 12476 12476 D ICU     : No timezone override file found: /data/misc/zoneinfo/current/icu/icu_tzdata.dat
    08-28 09:48:58.129 12476 12476 E memtrack: Couldn't load memtrack module (No such file or directory)
    08-28 09:48:58.129 12476 12476 E android.os.Debug: failed to load memtrack module: -2
    08-28 09:48:58.130 12476 12476 I Radio-JNI: register_android_hardware_Radio DONE
    08-28 09:48:58.139 12476 12476 D AndroidRuntime: Calling main entry com.android.commands.settings.SettingsCmd
    08-28 09:48:58.144 12476 12476 D AndroidRuntime: Shutting down VM
    emulator: emulator_window_fb_update
    
    emulator: emulator_window_fb_update
    
    emulator: emulator_window_fb_update
    
    emulator: emulator_window_fb_update
    
    08-28 09:49:03.851  1602  2032 D AlarmManagerService: Kernel timezone updated to -600 minutes west of GMT
    08-28 09:49:03.852  1602  2030 D AlarmManagerService: Setting time of day to sec=1566949744
    08-28 09:49:04.002  1602  2030 W AlarmManagerService: Unable to set rtc to 1566949744: No such device
    [ 8042.781849] healthd: battery l=100 v=0 t=0.0 h=2 st=2 chg=a
    emulator: emulator_window_fb_update
    
    emulator: emulator_window_fb_update
    
    emulator: emulator_window_fb_update
    
    emulator: emulator_window_fb_update
    
    emulator: Saving state on exit with session uptime 73706 ms
    

    Dites «y» à tous sudo touch ~ / .android / repositories.cfg

  3. Liste des appareils virtuels Android disponibles à installer (fait en tant qu'utilisateur)

    PlayStore.enabled = false
    abi.type = x86
    avd.ini.encoding = UTF-8
    hw.accelerometer = yes
    hw.audioInput = yes
    hw.battery = yes
    hw.cpu.arch = x86
    hw.dPad = no
    hw.device.hash2 = MD5:fc85b2d34337b54227366eb43de4cfef
    hw.device.manufacturer = Generic
    hw.device.name = 5.4in FWVGA
    hw.gps = yes
    hw.lcd.density = 160
    hw.lcd.height = 854
    hw.lcd.width = 480
    hw.mainKeys = yes
    hw.sdCard = yes
    hw.sensors.orientation = yes
    hw.sensors.proximity = yes
    hw.trackBall = no
    image.sysdir.1 = system-images/android-24/google_apis_playstore/x86/
    sdcard.size = 2048M
    tag.display = Google Play
    tag.id = google_apis_playstore
    disk.dataPartition.size = 6442450944
    hw.ramSize=3072
    
  4. Créer un appareil virtuel Android (AVD) de test

    08-22 13:50:03.169  2703  2839 V NativeCrypto: Read error: ssl=0xb0a32640: I/O error during system call, Connection reset by peer
    08-22 13:50:03.170  2703  2839 V NativeCrypto: SSL shutdown failed: ssl=0xb0a32640: I/O error during system call, Broken pipe
    08-22 13:50:03.195  3551  3551 W dex2oat : Unexpected CPU variant for X86 using defaults: x86
    08-22 13:50:03.195  3551  3551 W dex2oat : Mismatch between dex2oat instruction set features (ISA: X86 Feature string: smp,-ssse3,-sse4.1,-sse4.2,-avx,-avx2,-lock_add,-popcnt) and those of dex2oat executable (ISA: X86 Feature string: smp,ssse3,-sse4.1,-sse4.2,-avx,-avx2,-lock_add,-popcnt) for the command line:
    08-22 13:50:03.195  3551  3551 W dex2oat : /system/bin/dex2oat --runtime-arg -classpath --runtime-arg & --instruction-set=x86 --instruction-set-features=smp,ssse3,-sse4.1,-sse4.2,-avx,-avx2,-lock_add,-popcnt --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction-set-variant=x86 --instruction-set-features=default --dex-file=/data/user/0/com.google.android.gms/app_fb/f.apk --oat-fd=44 --oat-location=/data/user/0/com.google.android.gms/app_fb/f.dex --compiler-filter=speed
    08-22 13:50:03.195  3551  3551 I dex2oat : /system/bin/dex2oat --dex-file=/data/user/0/com.google.android.gms/app_fb/f.apk --oat-fd=44 --oat-location=/data/user/0/com.google.android.gms/app_fb/f.dex --compiler-filter=speed
    08-22 13:50:03.232  3551  3551 I dex2oat : dex2oat took 36.457ms (threads: 2) arena alloc=323KB (331648B) java alloc=76KB (78168B) native alloc=966KB (989744B) free=2MB (2155984B)
    08-22 13:50:03.234  2703  2839 W System  : ClassLoader referenced unknown path: 
    08-22 13:50:03.253  2022  3550 I GoogleURLConnFactory: Using platform SSLCertificateSocketFactory
    08-22 13:50:03.262  2022  3550 I GoogleURLConnFactory: Using platform SSLCertificateSocketFactory
    08-22 13:50:03.387  2022  2716 W ConfigurationChimeraPro: Got null configs for com.google.android.gms.auth.account.base
    08-22 13:50:03.415  2022  2716 W Conscrypt: Could not set socket write timeout:
    08-22 13:50:03.416  2022  2716 W Conscrypt:    java.lang.reflect.Method.invoke(Native Method)
    08-22 13:50:03.416  2022  2716 W Conscrypt:    com.google.android.gms.org.conscrypt.Platform.setSocketWriteTimeout(:com.google.android.gms@11743470:13)
    08-22 13:50:03.552  2022  2716 W Conscrypt: Could not set socket write timeout:
    08-22 13:50:03.552  2022  2716 W Conscrypt:    java.lang.reflect.Method.invoke(Native Method)
    08-22 13:50:03.552  2022  2716 W Conscrypt:    com.google.android.gms.org.conscrypt.Platform.setSocketWriteTimeout(:com.google.android.gms@11743470:13)
    08-22 13:50:03.678  2022  2716 W GLSUser : [AppCertManager] IOException while requesting key: 
    08-22 13:50:03.678  2022  2716 W GLSUser : java.io.IOException: Invalid device key response.
    08-22 13:50:03.678  2022  2716 W GLSUser :  at eyw.a(:com.google.android.gms@11743470:14)
    08-22 13:50:03.678  2022  2716 W GLSUser :  at eyw.a(:com.google.android.gms@11743470:65)
    08-22 13:50:03.678  2022  2716 W GLSUser :  at eyu.a(:com.google.android.gms@11743470:8)
    08-22 13:50:03.678  2022  2716 W GLSUser :  at eyq.a(:com.google.android.gms@11743470:1)
    08-22 13:50:03.678  2022  2716 W GLSUser :  at eyp.a(:com.google.android.gms@11743470:10)
    08-22 13:50:03.678  2022  2716 W GLSUser :  at com.google.android.gms.auth.account.be.legacy.AuthCronChimeraService.b(:com.google.android.gms@11743470:7)
    08-22 13:50:03.678  2022  2716 W GLSUser :  at edr.call(:com.google.android.gms@11743470:3)
    08-22 13:50:03.678  2022  2716 W GLSUser :  at java.util.concurrent.FutureTask.run(FutureTask.java:237)
    08-22 13:50:03.678  2022  2716 W GLSUser :  at mmu.run(:com.google.android.gms@11743470:26)
    08-22 13:50:03.678  2022  2716 W GLSUser :  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
    08-22 13:50:03.678  2022  2716 W GLSUser :  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
    08-22 13:50:03.678  2022  2716 W GLSUser :  at mse.run(:com.google.android.gms@11743470)
    08-22 13:50:03.678  2022  2716 W GLSUser :  at java.lang.Thread.run(Thread.java:761)
    08-22 13:50:07.717  1603  1634 W ActivityManager: Unable to start service Intent { act=com.google.android.gms.drive.ApiService.RESET_AFTER_BOOT flg=0x4 cmp=com.google.android.gms/.drive.api.ApiService (has extras) } U=0: not found
    emulator: Saving state on exit with session uptime 119964 ms
    

    profil matériel personnalisé: non

  5. Liste des AVD

    Maintenant, j'obtiens ce qui suit lorsque je liste via avdmanager

    $ANDROID_HOME/emulator/emulator -avd test -gpu guest -logcat v
    
  6. Démarrez l'émulateur

    cd /usr/local/android/sdk/emulator
    ./emulator -avd test
    

Il charge ensuite l'émulateur et je peux démarrer des applications et parcourir jusqu'à ce qu'il plante / ferme le programme.

J'ai essayé d'installer le studio Android et de configurer l'AVD par là, même chose est arrivée. J'ai essayé différents modèles et versions Android pour mon AVD, même chose.

Mise à jour: consigner un plantage

J'ai réussi à consigner un plantage en utilisant

./avdmanager list avd
Available Android Virtual Devices:
    Name: test
    Path: /root/.android/avd/test.avd
  Target: Google APIs (Google Inc.)
          Based on: Android 7.1.1 (Nougat) Tag/ABI: google_apis/x86

log

./avdmanager create avd -n test -k "system-images;android-25;google_apis;x86"

Mise à jour: config.ini

Voici mon config.ini

./avdmanager list

Mise à jour: un autre journal des plantages

Cette fois, il ne se plaint pas d'un clé.

sudo ./sdkmanager "system-images;android-25;google_apis;x86"
sudo ./sdkmanager --licenses

Contournement

Créez un alias qui redémarre l'émulateur à chaque fois qu'il plante.

cd /usr/local/android/sdk/tools/bin
sudo chmod +x

C'est terrible, mais ce avec quoi je travaille actuellement.


2 commentaires

@Mohsinkazi Non, je n'utilise pas l'exécution instantanée. Il ne plante pas dans la même application ni dans la même heure. Je ne trouve pas de modèle pour l'instant.


Copie possible de IOException lors de la demande de clé: réponse de clé de périphérique non valide .


4 Réponses :


1
votes

La raison est que vous n'avez pas assez d'espace disque sur votre bureau où vous avez installé le studio avec l'émulateur.Essayez de nettoyer un peu d'espace et de réexécuter l'appareil ou cela n'aide pas à essayer de créer un nouvel émulateur. .


2 commentaires

J'ai 551 Go gratuits, ce n'est pas le problème.


J'ai essayé de créer un AVD Nexus9 ainsi qu'un AVD Pixel, Pixel2 et Pixel 3 et ils ont tous le même problème. Ils démarrent et après environ 30 secondes, il plante.



1
votes

Votre bios peut désactiver la virtualisation, vous pouvez l'activer manuellement pour accéder au bios et l'activer, le bios est différent dans presque chaque appareil. Le problème peut également être un problème de stockage, pas d'espace, un fichier corrompu ou un stockage limité par un programme. Ce sera généralement un problème de Bios.


2 commentaires

J'ai déjà VT-d activé dans le BIOS, je n'ai pas de corruption sur le disque dur et beaucoup d'espace (551 Go libres).


VT-x doit être activé pour la virtualisation



1
votes

Essayez de changer les graphiques en Software-GLES. Il peut être défini sur Automatique qui prend le matériel par défaut.

Vous trouverez les paramètres dans Android Virtual Device Manager> Virtual Device Configuration> Emulated Performance> Software-GLES ...


5 commentaires

Je cours avec des graphiques logiciels utilisant déjà le drapeau sur la ligne de commande '-gpu guest'


pouvez-vous vérifier une fois la configuration du périphérique virtuel? Je ne connais pas ce drapeau. Le problème était auparavant lorsque je faisais face à ce genre de problème et après avoir changé les graphiques en logiciels-gles, mon problème était résolu.


Je n'exécute pas le Studio Android complet sur cette machine uniquement les outils de ligne de commande sdk. Réf: developer.android.com/studio/run/… J'ai essayé toutes les autres options et la seule chose qui fonctionne sur cet ordinateur est «l'invité». Sur mon ordinateur portable, j'utilise «auto» et il plante là aussi.


vérifiez ceci: bram. us / 2017/05/12 /… aussi, il est possible que vous ayez besoin de mettre à jour vos pilotes ... aussi, essayez une chose, effacez les données de l'émulateur et essayez de l'exécuter ... ceci Ce n'est peut-être pas du tout la solution, mais comme vous avez essayé beaucoup de choses, vous pouvez essayer cela aussi


Cela a fonctionné pour moi. et ces avertissements ennuyeux concernant GLES disparaissent également. mais j'ai décidé d'utiliser du matériel au lieu du logiciel car il était en quelque sorte rampant. le matériel a fait des merveilles: D



0
votes

Essayez quelques-unes de ces méthodes. Cela pourrait vous aider:

  • L'émulateur consomme généralement plus de RAM. Peut-être que vous n'avez pas assez de mémoire pour courir.
  • Les autres raisons peuvent également être: 1) Pilotes de carte graphique obsolètes. 2) Cartes graphiques plus anciennes.

  • Il y a une erreur:

    08-28 09: 48: 58.129 12476 12476 E memtrack: Impossible de charger le module memtrack (aucun fichier ou répertoire de ce type)

l'erreur du module Memtrack impossible de charger peut se produire en raison de problèmes de configuration des émulateurs et, comme votre projet contient de nombreux problèmes d'organisation, il peut être utile de donner une nouvelle conception.


2 commentaires

J'ai configuré la RAM à 3 Go pour l'émulateur. En référence à une refonte, ce problème se produit même si je n'exécute pas mon application


S'il existe une version plus récente (comparée au code de version défini dans votre manifest.xml) de la même application dans l'émulateur cible, vous obtiendrez une erreur comme vous l'avez mentionné. Impossible de charger le module memtrack (aucun fichier ou répertoire de ce type) échec de chargement du module memtrack: -2