2016-01-28 14 views
10

Ich arbeite an einem Kompatibilitätsproblem bei Android-Entwicklung, Meine Android-Apps stürzten auf einem seltenen Gerät ROM, die einige Framework (app.widget) Code geändert hat, um den Absturz zu verursachen.Ist es möglich, ein Gerät ROM zu einem AVD-Emulator oder Genymotion zu flashen?

Ich möchte den Absturz von mir selbst ohne das Gerät reproduzieren, ich besitze das Gerät nicht und kann nicht leicht das richtige Gerät, außer 2-Hand-Markt.

Aber das ROM kann ich aus dem Geräteforum herunterladen (system.img, userdata.img), kann ich das ROM direkt auf den AVD oder Genymotion flashen? Irgendwelche Hinweise, um dies zu erreichen?

+3

"Kann ich das ROM direkt auf den AVD oder Genymotion flashen?" -- Ich bezweifle das. Schließlich ist der Emulator keine Hardware, und auf dem ROM werden Hardwaretreiber erwartet, die mit Hardware arbeiten. – CommonsWare

+0

Anstatt zu versuchen, zuerst zu reproduzieren, was ist der genaue Fehler? –

+0

@ JonasKöritz ist es der ROM-Spezifikations-Fehler, weil der Framework-Code des ROM (TextView stuff) ein wenig anders als der normale Code ist. Mein benutzerdefiniertes TextView erweitert TextView, führt dazu, dass die Auswahllogik in einer Reihe von Operationsreihen abstürzt. Ich finde bereits die Absturzursache, und verhindere es im ROM durch Reflektion, finde die Ursache, indem ich den Framework-Code des ROMs abspeichere. Ordnen Sie es dem Ausnahmestapel zu. – Gohan

Antwort

0

Einfache Antwort: Nein, du kannst nicht. Geräte-ROMs sind vollständig gerätespezifisch. Genymotion läuft auf x86 (Ihrem Computer), was in den meisten Fällen nicht mit der Architektur Ihres Geräts übereinstimmt. Auch wenn Sie dies auf "Flash-Storage" von genymotions "flashen" können, kann keine ausführbare Datei, die den Kernel und den Bootloader enthält, gestartet werden.