Android Virtual Device zeitsparend re-initialisieren - wie?

  • Antworten:7
tomte
  • Forum-Beiträge: 36

18.01.2014, 11:35:08 via Website

Generell wenn ich im Layout-XML die Reihenfolge von z.B. ListView und dem Buttons-LinearLayout darueber darueber/darunter tausche, bekomme ich erst einmal bei Run den unsinnigen Fehler:
ClassCastException: android.widget.Button cannot be cast to android.widget.ListView
Irgendwas erinnert sich offensichtlich noch an die frueheren (compilierten!) Positionen.
Nach einigem Rummurksen bis hin zum Booten verschwindet dieser unsinnige Pseudo-Fehler.

Mir ist nicht klar, welche der zeitraubenden Schritte in Eclipse/ADT zum Bereinigen des internen AVD-Zustands wirklich notwendig sind:

* Speichern startet mit meinen Projekteinstellungen den XML-Precompiler und den Java-Compiler, ok
* Project > Clean ?
* AVD herunterfahren, dann im Android Virtual Device Manager:
* * Android Virtual Devices Reiter
* * * AVD markieren > Delete
* * DeviceDefinitions Reiter
* * * mein Device markieren > Create AVD
* * Android Virtual Devices Reiter
* * * Refresh
* * * AVD markieren > Start (und das dauert ...)
* lieber ohne Snapshot? (stattdessen Graphikunterstuetzung zur Beschleunigung?)
* User-Daten vorsichtshalber loeschen lassen? (dauert dann noch laenger)
* Booten?
* Eclipse/ADT beenden und neu starten?

Das laestige Phaenomen kennen sicher viele, aber wer kennt die zeitsparendste Vorgehensweise?
Liebe Gruesse
tomte

— geändert am 18.01.2014, 12:20:26

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

18.01.2014, 11:56:12 via Website

Ist dir das ganze AVD mit den VRT. Devices nicht zu langsam?
Dann könntenst du das ganz weglassen.
Entweder einen Android per Virtual Box oder ähnliches aufsetzen oder Eigenen Gerät nutzen.
Ich benutze auch ADT und ich kann Problemlos dinge Im XML Layout verschieben.
Vlt. mal neuset Version installieren

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
tomte
  • Forum-Beiträge: 36

18.01.2014, 12:28:24 via Website

Pascal P.
Ist dir das ganze AVD mit den VRT. Devices nicht zu langsam?
Dann könntenst du das ganz weglassen.
Hmmmm, wieso komme ich nicht auf diese naechstliegende Idee? B)
Hatte wohl noch Scheu vor der neuen Baustelle, werde es aber jetzt damit probieren.
Denn ja, AVD ist mir eh um Groessenordnungen zu langsam!
Danke!
tomte

Antworten
Christian
  • Forum-Beiträge: 307

18.01.2014, 15:28:22 via Website

Hi,

ich kann zwar das mit den Button verschieben und der ClassCastException nicht wirklich nachvollziehen aber zum Thema alternative für die AVD könntest du dir ja mal die Genymotion an sehen.

Mfg Christian

— geändert am 18.01.2014, 15:28:45

Antworten
Mac Systems
  • Forum-Beiträge: 1.727

18.01.2014, 18:08:28 via Website

Grob wird es daran liegen das deine R Klasse nicht neu erzeugt wird, dafür musst du sorgen.

Ansonsten ist GenyMotion eine gute Alternative zu dem Standart Emulator. Persönlich teste Ich fast ausschliesslich direkt mit devices per USB.

Windmate HD, See you @ IO 14 , Worked on Wundercar, Glass V3, LG G Watch, Moto 360, Android TV

Antworten
tomte
  • Forum-Beiträge: 36

20.01.2014, 07:25:32 via Website

Mac Systems
... deine R Klasse nicht neu erzeugt wird, dafür musst du sorgen.
Ich gehe davon aus, dass durch meine Einstellung EclipseADT > Build Automaticlly nicht nur die .java compiliert, sondern vorher die .xml in res\ zu .java Dateien praecompiliert und dann alle .java zu .class Dateien compiliert werden (Beweis: XML-Fehler verhindern den Build). Das ist doch das "eine R Klasse erzeugen", oder?

Antworten
Fabian Simon
  • Forum-Beiträge: 359

20.01.2014, 12:03:44 via Website

Ja deine annahme ist Richtig.
Jedoch verschluckt sich Eclipse manchmal.
Dann sollte man von Hand über Project-> Clean das ganze mal durchpusten

Antworten
tomte
  • Forum-Beiträge: 36

20.01.2014, 12:14:47 via Website

Danke fuer den Hinweis des Praxis-Erfahrenen!
Das Project > Clean hatte ich allerdings schon als Erstes versucht, ohne Wirkung.

Auch wenn ich inzwischen einen USB-Treiber gefunden habe und meine App auf einem Hardware-Device testen kann, faende ich es immer noch sehr wichtig, mit weiteren, virtuellen Devices testen zu koennen.
tomte

Antworten