Wie repariere ich die Anzeige auf meinem Android AVD? Die Benutzeroberfläche ist völlig aus dem Ruder gelaufen. Ich verwende die folgenden Befehlszeilenoptionen, um das AVD zu starten, aber nichts, was ich in den Optionen „scale“ und „dpi-device“ tue, hilft, die durcheinandergebrachte Anzeige zu beheben (siehe Beispiel-Screenshot). Ich verwende Arch Linux mit dem neuesten proprietären Nvidia-Treiber 346.35. Jede Hilfe wird sehr geschätzt.
Befehl:
$ emulator -verbose -scale 0.9 -dpi-device 480 -noaudio -no-boot-anim -noskin -no-snapshot @lollipop -qemu -m 1536 -enable-kvm
Außerdem habe ich laut diesem StackOverflow-Beitrag Folgendes getan:
$ adb shell setprop qemu.sf.lcd_density 480
$ adb shell stop
$ adb shell start
Dies hat an der durcheinandergebrachten Anzeige auf meinem Emulator nichts geändert.
Beachten Sie, dass ich die Option verwenden muss, -noskin
da sie sich sonst weigert, den Emulator für mich zu starten.
Ich starte nicht über die Befehlszeile, aber diese Frage kam auf, als ich versuchte, ein ähnliches Problem zu lösen.
Ich habe es schließlich gelöst, indem ich den hw.lcd.density
Wert in der .android/avd/<avd_name>.avd/config.ini
Datei durch den Wert aus dieser Antwort ersetzt habe , der dem Wert in der Skin- hardware.ini
Datei am nächsten kommt (in meinem Fall ist das at <android-studio-location>/plugins/android/lib/device-art-resources/<skin-name>/hardware.ini
).
In meinem Fall emulieren ich ein Samsung Galaxy S6, und der von Samsung bereitgestellte Skin hat ein hw.lcd.density
von 200
, aber die bereitgestellten Abmessungen sind 1440x2560
und die bereitgestellten Hintergrundbilder sind klein, sodass der Bildschirm in einen viel kleineren Raum passt ( 474x839
), Die config.ini
Datei hat also einen hw.lcd.density
Wert von 640
. Das Verringern auf 213
und das Neustarten des Emulators behebt das Problem (aber ich denke, es emuliert das Bildschirmbild nicht ganz genau. Ich weiß nicht, ob es besser ist, als nur einen anderen Wert für die Bildschirmauflösung zu verwenden).