Beiträge von killphil75

    Netzwerkzugriffe gehören seit Android 3.0 in einen eigenen Thread sonst gibt es Policy OnNetwork Error oder so, aber bis dahin kommt deine App gerade nicht (sollte also erst das nächste Problem sein) -> Lösung: AsyncTask


    Zu deinem Fehler - ich vermute mal dein context ist eventl nicht inialisiert....


    context.getSystemService(Context.CONNECTIVITY_SERVICE);



    besser mit GetActivityContext oder so besorgen oder der Function übergeben.

    @Lucas google mal nach Dalvik Error 1 und SupportLib , das ist ein bekanntes Problem. (zumindest klingt es so bei Dir)


    Ich habe das Phänomen auch schon gehabt -> eigenes Projekt -> Support Lib
    ActionbarSherlock
    und ViewPagerindicator , die beiden Libs bringen Ihre SupportLib mit und beim kompilieren bricht es dann mit Dalvik error 1 ab.
    Ich habe es so gelöst das die supportlib nur von meinem Projekt kommt und die beiden anderen diese Einbinden, Projekt clean
    und schon geht es wieder.

    Hallo matze,


    schade das du so Probleme hast, ich hab den UniversalImageLoader "damals" nur für ein Projekt benutzt wo Gallerien nachgeladen werden (ganz klassisch -< Listview mit Image -> GridView mit vielen Images -> Detailview mit Image zum Swipen) Ich sage damals, weil ich eben noch mal geschaut habe, da war es Version 1.6.2. (und die App brauchte bisher noch kein Update).


    Das Einbinden war relativ einfach (Ableitung Baseactivity) und ich hatte nicht solche gravierenden Probleme wie du. Muss mir wahrscheinlich mal die neue Version anschauen eventl haben Sie da etwas verschlimmbessert ....

    Zitat


    Hallo zusammen,
    wann macht es Sinn eine Klasse zu nutzen, die von Application ableitet und wie wird diese in die App eingebunden.


    Danke für eure Meinungen


    Gruss KHH



    Da gibt es auf Stackoverflow ganz interessante Diskussionen zum Thema


    http://stackoverflow.com/quest…-application-as-singleton
    http://stackoverflow.com/quest…plication-not-a-good-idea


    bzw. hier auch einen Beitrag


    http://www.devahead.com/blog/2…d-dealing-with-singleton/
    http://androidcookbook.com/Recipe.seam?recipeId=1218


    -> Da die ApplicationKlasse immer als Grundgerüst deiner App läuft, kannst du Sie als gloablen Singelton verwenden und ein paar Daten speichern. (oder in MyApplication eine Klasse stellen, welche die ganzen Daten vorhält)


    Der Vorteil, dieses Daten sind App weit verfügbar und kleben nicht an einer Activity. Über den ApplicationContext kommst du immer an die Instanz deiner Application und kannst darauf zugreifen.
    Das Problem : aus PHP und CO. wissen wir ja bereits globale Variabeln sind böse , aber das ist Ansichtssache.


    Anderes Beispiel: bei AndroidPit im Forum nutzt einer die Klasse um global den StrictMode zu deaktivieren (ist auch zu hinterfragen ob das gut ist, aber seine Argumente sind nachvollziehbar) aber lest selbst:


    http://www.androidpit.de/de/an…efungen-des-OS-abschalten



    Also ich hatte das selbe Problem -> Daten aus dem Internet geladen , sollten verfügbar für 3 verschiedene Activities sein. Und da ich die Daten nicht jedes Mal neu laden wollte habe ich Sie mir die Struktur in MyApplication gebaut (getter und Setter methoden geschrieben) und alles funktioniert wie gewünscht.

    GC = Garbage Collector


    das ist die Automatik von java welche den Speicher aufräumen soll und nicht benutze Variablen,Bilder,Reservierungen was auch immer wieder freigibt.



    Zitat


    habe in der if die fb1907.de.MainActivity.mp.isPlaying() entfernt und überprüfe jetzt nur ob der mp != null ist und siehe da es geht. ein Problem weniger :)


    Ich glaube Lucas ging es mehr um die Reihenfolge und nicht ums weglassen


    mp.isplaying und gleichzeit auf null prüfen funktioniert so nicht !


    Warum?


    Wenn du auf die Eigenschaft mp.isPlaying zugreifst, obwohl Objekt mp schon gar nicht mehr da ist (also null), dann bekommst du eine Nullpointer exception.


    Besser wäre also nacheinander prüfen :


    Das du schon in Tutorialvorleistung gegangen bist, hatte ich gar nicht gesehen... na dann kann man dann nur "Zurück zur Schulbank" sagen.


    Zitat


    Diese Sichtweise überrascht mich. Wann immer nach irgend einer Lösung für sein spezifisches Problem gefragt wird, bekommt man irgend eine Library empfohlen. Der ganze Programmierkrams läuft nur mit Libraries. Man hat es eigentlich immer mit Libraries zu tun. Warum dann für den Anfang nicht erst mal eine Library nutzen, die einem unnötige Arbeit abnimmt?



    Wie soll ein Anfänger greendao verstehen bzw. die Vorteile erkennen wenn Ihm die Grundlagen/Basics zu SqLite fehlen ? Natürlich wird das jetzt für einen Aussenstehenden klarer nach dem er deine Abhandlung gelesen hat. (aber erst jetzt, also hinterher).
    Somit wäre dein komplett objektorientierter Ansatz die perfekte Lösung, doch darfst du nicht den Fehler machen und davon ausgehen das 90% der Leser dieses Forums ein abgeschlossenes Informatikstudium haben (dann wär dieses Forum fast so überflüssig wie ein Kropf). Also woher soll der Leser wissen das so etwas möglich ist ??? (du hast ja deinen Lexikoneintrag noch nicht gemacht und hälst somit wertvolles Wissen zurück :) )


    In vielen Büchern/Tutorials werden halt nur die Basics abgeklappert und tiefergehende Erklärungen zu DesignPatterns, MVC und Co. werden meist gar nicht behandelt, daher denke ich mir man sollte nicht allzu hart mit den Anfängern ins Gericht gehen.

    Mag in deinem Fall ja das richtige Mittel der Wahl sein, war hier aber leider nicht gefragt.


    So wie ich die Sachlage sehe steht Henry gerade am Anfang seiner Androidprogrammiererlaufbahn (siehe erstes Posting mit Verweis -> Tutorial) und daher denke ich sollte man Ihn jetzt nicht mit irgendwelchen Hilfskonzepten und Librarys überrollen, sondern erst mal bei den Grundlagen helfen und die heissen in diesem Falle SQLite und sind mit reinen Bordmitteln zu erledigen.


    Wenn er das verstanden hat, kann er sich ja gerne ORM Lite, greendao und wie Sie alle heissen anschauen.

    Hallo Henry, dann zeig doch mal deine Mainactivity wo du die Datenbank initalisierst,


    ich habe hier eben mal deinen Code 1zu1 kopiert (bis auf die DROP Anweisung) und zu einem Testprojekt gemacht, habe mit createEntry Einträge hinzugefügt und mit getAllEntries alle wieder zurückgeben lassen alles ohne Fehler. (sogar mit dem unveränderten ID gedöns)



    Also bei mir sieht das "Testprojekt" oncreate so aus


    Jemand mag mich korrigieren aber ich dachte das ID Feld bei sqlite sollte immer zwingend _id heissen, alles andere sorgt für Probleme (da gibt es hier irgendwo auch einen Thread zu)



    Ok noch mal gesucht und gefunden, die Probleme kommen dann in Verbindung mit CursorAdapter bzw Listview. nachzu lesen hier


    http://developer.android.com/r…widget/CursorAdapter.html


    Zitat

    Adapter that exposes data from a Cursor to a ListView widget. The Cursor must include a column named "_id" or this class will not work.



    Hier mal noch ein gutes Tutorial zum Thema SQLite bzw auch für die Zukunft Contentprovider


    http://www.vogella.com/articles/AndroidSQLite/article.html



    ------------------------------------------------------------------------------------------------------------------------
    Fehler:


    Zitat

    db.execSQL("DROP TABLE IF EXISTS SCANITEM");


    Deine Table heisst nicht SCANITEM --> die heisst BMIVERLAUF

    Na aber das Problem steht doch in deinem Log File - er findet die Tabelle nicht,
    jetzt musst du mal deinen Source durchsuchen ob du eventl Gross/Kleinschreibung oder sonst etwas durcheinander gebracht hast - kann mir nur vorstellen das es so etwas triviales ist.


    Spannend finde ich aber noch die Ausgabe in deinem Log.


    Zitat

    03-12 16:51:08.247: I/Choreographer(853): Skipped 52 frames! The application may be doing too much work on its main thread.


    Wenn es mit dem Fehler zusammenhängt ok, falls die DB Abfrage immer so lange dauert, solltest du Sie in einen extra Thread verlagern weil sonst der Mainthread (GUI) zum Stillstand kommt und deine App abstürzt -> ANR Error.

    Zitat

    Update im Androidmarked
    Hallo zusammen,
    reicht es die Versionsnummer einer App im Androidmarked(Google-Play) hochzusetzten, damit auf dem Handy ein verfügbares Update angezeigt wird, oder was ist dazu sonst zu beachten?


    Also du musst die Versionsnummer in deinem Manifest deiner App hochsetzen (Versions Code) sonst meckert GooglePlay schon beim Upload der App, das eine identische Versionsnummer bereits veröffentlicht ist.

    Welche Festplatten ????


    Die meisten Telefone und Tablets besitzen FlashSpeicher.


    Keine Ahnung was du genau vor hast bzw. was du nun genau mit auslesen meinst.
    Android stellt dir einige Klassen zum Thema Dateiverwaltung bereit -> SDK Lesen -> java.io


    http://developer.android.com/index.html



    ->


    Nicht zu vergessen das Android ja irgendwie auf Linux basiert, d.h. es gibt genaue Zugriffsrechte was ein User darf und was nicht.
    Wenn dein Gerät gerootet (SuperUser) ist, hast du vollen Zugriff auf das Dateisystem von Android, wenn nicht ... dann halt nicht.


    d.h. wenn du Root Zugriff hast, kannst du alles auslesen....