Ich habe einen Code, der aussieht wie
%Vor%Wenn ich einen Android 5.0-Emulator verwende, bekomme ich diesen Absturz:
%Vor%Ich verstehe, dass der offizielle Android-Emulator keine USB-Unterstützung hat, aber ich würde eher eine leere Liste von USB-Geräten als einen Absturz erwarten.
Ich habe den Android-Code ein wenig erreicht, und die Karte der Dienste von ServiceManager
hatte keinen Eintrag für "usb"
. Nichts in dem Android 21-Stapel scheint den von ServiceManager
zurückgegebenen Nullwert zu verarbeiten.
Der Code funktioniert auf emulierten 4.4-Geräten einwandfrei, stürzt jedoch auf 5.0-Geräten ab. CPU-Architektur scheint keinen Unterschied zu machen; Ich habe ARM und x86 versucht.
Es funktioniert auch auf allen Genymotion-Geräten, die ich ausprobiert habe, aber ich muss dies auf CentOS-CI-Hosts funktionieren lassen, und Genymotion auf CentOS laufen zu lassen, scheint aufdringliche Änderungen zu erfordern.
Irgendwelche Ideen für eine Korrektur oder einen Workaround? Als letzten Ausweg könnte ich UsbManager
's NPE fangen, aber es wäre ziemlich schlimm, da ich auch eine Drittanbieter-Bibliothek verwende, die mit UsbManager
interagiert.
RETURN Object The service or null if the name does not exist.
Gemäß der API ist die Implementierung nicht verpflichtet, einen Wert nicht null
zurückzugeben.
Umgehen: einfach.
%Vor%(Ich habe auch das gleiche Problem auf Emulator gesehen, wie Sie beschrieben haben)
Tags und Links android usb android-emulator