Beiträge von matthias

    Hoi,


    die erste blöde Frage die mir dazu einfällt ist, hast du Java installiert? Kann man im Eifer des Gefechts durchaus mal vergessen xD


    Falls das nicht zutrifft, würd ich als Linuxer mal sagen, starte das Teil von der Konsole heraus und schau was es spricht. Also Start > Suchen > cmd > Eingabeaufforderung öffnen. Dort dann mit cd in das richtige Verzeichnis wechseln und den SDK-Manager dort mal auf rufen. Dann müsste eigentlich rein theoretisch der Error Output in die Eingabeaufforderung geschrieben werden und sich nicht wieder schließen.



    Gruß,
    Matze

    Hoi,


    die ia32-libs wurden in Ubuntu 13.04 oder 13.10 (weiß nicht mehr) entfernt bzw. noch nicht ein gepflegt. Ich arbeite unter Xubuntu 13.10 64 Bit und hab dazu etwas tricksen müssen. Ich such mal, was genau das war und meld mich wieder. Lässt sich sicherlich auf Debian übertragen.



    Gruß,
    Matze


    EDIT:
    Obs ausreicht weis ich nicht, aber die Pakete "lib32z1" und "lib32stdc++6" hatte ich testweise mal installiert.


    EDIT2:
    Ich bin mir schon recht sicher, dass er die nötigen Klassen nicht generiert, weil adb nicht funktioniert. Hat ja an sich mit dem Precompiler etc zu tun. Wenn da das wichtigste Kernstück fehlt lädt Eclipse vermutlich das ganze Ding nicht.

    Hoi,


    wie das jetzt mit Phonegap funktioniert weis ich nicht, aber dein HTML-Code müsste eig. in einer WebView dargestellt werden. Dort kannst du mit setWebViewClient einen neuen Client setzen und dort in der shouldOverrideUrlLoading die URL direkt in der übergebenen WebView laden und mit "return true;" wieder raus springen.


    Vll. findest du ja mithilfe dieser Begrifflichkeiten eine Lösung, die mit Phonegap funktioniert.



    Gruß,
    Matze

    Hoi,


    danke für die Recherchen.
    Habs grad mal zam gesteckt und meinen Praktikant genötigt es zu testen aber selbes Problem. Muss mir das Teil wohl morgen mal von ihm leihen und den Logcat Output genau durchforsten und debuggen ...
    Vll. hab ich auch grad was übersehen, irgendwie hab ich heut kein Kopf mehr dafür -.-" Morgen schau ichs mir nochmal an und berichte dann nochmal.



    Gruß,
    Matze

    Hoi,


    danke für die Antwort aber ich selbst speichere bis zu diesem Punkt noch überhaupt nichts. Ich ruf nur die Kamera-App auf und sag ihr gib mir die Uri zum Video, wenn du fertig bist mit der Aufnahme.
    Schritt für Schritt:
    Ich rufe meine Methode auf, die exakt den ersten Code-Abschnitt enthält. Intent erzeugen und mit startActivityForResult aufrufen. Meine App schließt sich, die Kamera-App geht auf, der User nimmt sein Video auf, schließt irgendwann die Kamera-App entweder durch OK oder Abbrechen und meine App resumed automatisch und der Callback onActivityResult wird aufgerufen. Da prüfe ich, ob der ResultCode OK ist und der RequestCode der Aktion entspricht, mit der ich mein Intent gestartet habe.
    Ist das der Fall hole ich mir mit data.getData() die Uri raus, die beim Nexus 4 eben null ist.


    In einem anderen Szenario hättest du vermutlich recht aber mein Problem hier lässt sich tatsächlich auf 3 Zeilen kürzen ...


    Das führt mich zu der Überlegung, ob ich zum Auslesen des internen Speichers eine eigene Berechtigung brauche. Hab nur WRITE_EXTERNAL_STORAGE, was READ_EXTERNAL_STORAGE automatisch mit einschließt, weil ich zu einem späteren Zeitpunkt das File kopiere und umbenenne.
    Find keine ähnliche Berechtigung, die ich zum Auslesen des internen Speichers angeben könnte ... gibts sowas überhaupt?



    Gruß,
    Matze

    Hoi,


    hab n kleines Problemchen, das nicht auf jedem Gerät auf tritt ... und zwar starte ich ein Intent um ein Video auf zu nehmen

    Java
    Intent takeVideoIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
    	startActivityForResult(takeVideoIntent, ACTION_TAKE_VIDEO);


    und will dann in der onActivityResult die Uri abholen

    Java
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            super.onActivityResult(requestCode, resultCode, data);
            videoUri = data.getData(); 
    }


    Auf dem S4 krieg ich über diesen Weg die Uri zum Video und kann damit weiter arbeiten. Auf dem Nexus 4 z.B. krieg ich null. Hat jemand eine Idee, wie ich das Problem anderweitig lösen bzw. umgehen kann?


    Gruß,
    Matze

    Hoi,


    vll. kennt sich ja hier jemand bissl besser mit Android Studio aus und kann mir helfen ...


    Hab ein Projekt, das kein Grandle Projekt ist. Es besteht aus 4 Modulen und ein paar Libs. Ich hab das Teil via VCS -> Import into Version Control -> Import into Subversion ... meinem Repo hinzugefügt. Wenn ich jetzt auf "Commit Changes ... " gehe, will der das in ein Repo eines anderen Modules einchecken und ich find ums verrecken nicht, wo zur Hölle der dieses Repo stehen hat. Auch ein grep findet nicht, wo das stehen soll.


    Bei einem anderen Projekt funktioniert alles einwandfrei deshalb verstehe ich nicht so ganz, was da bei dem los ist ...


    Hat jemand eine Idee? Gibt es etwas wie Disconnect form Version Control mit der Option alle SVN-Daten lokal zu löschen, damit man das mal versuchen kann neu in den SVN zu exportieren?



    Gruß,
    Matze

    Hoi,


    hab mein Problem selbst lösen können. Ich habe das UrlDrawable durch ein LevelListDrawable getauscht und setze direkt in der getDrawable via

    Java
    drawable.addLevel(0, 0, c.getResources().getDrawable(R.drawable.nothumb));


    einen Placeholder.
    In der onPostExecute setze ich dann das richtige Drawable

    Java
    drawable.addLevel(1, 1, result);
    setDrawableBounds(drawable, result);
    drawable.setLevel(1);


    aber der wichtigste Punkt ist eigentlich, dass ein "invalidate" auf die TextView nicht das tut, was man eigentlich will. Hab das Problem relativ sinnlos und unsinnig lösen können, indem ich das hier tue

    Java
    if (container instanceof TextView) {
                    TextView tv = (TextView) container;
                    tv.setText(tv.getText());
                }


    Mache ich am Ende der onPostExecute und es tut das, was ich von invalidate erwartet hätte.


    Gruß,
    Matze

    Hoi,


    hab ein Problem mit dem ImageGetter. Ich will beliebigen aus dem Internet nach geladenen Text mit HTML und Bildern in eine TextView nachladen. Ohne ImageGetter sieht man nur ein türkises Quadrat, deshalb hab ich einen ein gebaut (bzw. aus nem Forum entwendet).


    Das Problem ist nun, dass er mir das Image hinter den Text schiebt und sich das überlappt, eigentlich soll der Text aber um das Bild herum laufen bzw. erst Bild dann Text.


    Mein Code:


    Hat jemand von euch eine Idee, wie ich das Problem lösen kann bzw. wo mein Fehler liegen könnte?



    Gruß,
    Matze

    Hoi,


    im Allgemeinen kannst du so ziemlich alle Librarys und Funktionalität, die du da vermutlich in deiner Java-Anwendung hast, auch in Android 1:1 verwenden. Lediglich keine neue GUI müsstest du basteln, dann wär deine App nativ.


    Hab mal sowas ähnliches gemacht. Die Java-Anwendung war gut durchdacht und die einzelnen Module komplett ablösbare Maven-Dependencies in einem Archiva-Repo. Einfach in Android eingebunden, Android-Activitys und Layout erstellt, die Klassen aus den Dependencys geladen und via Maven das .apk File gebuildet. Fertig.



    Gruß,
    matze

    Ahoi,


    ich protokollier das hier mal so direkt mit:


    - Starte die App ... dauert 8 Sekunden, dann passiert etwas. In der Zwischenzeit sehe ich lediglich einen Splashscreen ... naja OK, vll. könnte man da noch schreiben was er denn gerade tut
    - Sieht sehr aufgeräumt und schlicht aus. Gefällt mir
    - Klick auf "About" ... Der Hintergrund is lustig ;) Die E-Mail könnte man evtl. gleich Klickbar machen und die Telefonnummer evtl. auch.
    - OK, Continue und "Start Quiz". Die Zeit zählt von 10 Sekunden runter, bei 8 Sekunden kann ich erst erkennen, dass da was ein fadet und zumindest bei GMail erkenne ich erst bei 6 Sekunden die Konturen. Heißt ich hab da 4 Sekunden weniger Zeit den richtigen Button zu drücken.
    - Wenn ich die App-Beschreibung scrolle springt der Hintergrund irgendwie Da is was seltsam
    - OK, ich klick mal auf den Play Store ... nach 8-10 Sekunden baut sich in einer WebView(?) der Play Store auf. Frage: Warum in einer WebView und nicht mit der App? Der ViewPort stimmt vorne und hinten nicht in der WebView
    - Mit dem Back-Button komme ich zurück zur App und die nächste Frage wird direkt angezeigt


    Fazit:
    Das Design gefällt mir, ob der Text für die Logos unter "About" reicht, damit dir kein böser Brief ins Haus flattert, weiß ich nicht. So an sich eine nette App, was mir persönlich aber überhaupt nicht taugt ist, dass da eine WebView mit verkorkstem ViewPort auf geht, wo ich erstmal 3 mal nach rechts wischen muss, bis ich überhaupt etwas sehe und nicht einfach die Play Store-App auf dem Device geöffnet wird.


    Wenn du das mit der WebView änderst und direkt die App startest, bewerte ich deine App gern positiv im Store.



    Gruß,
    Matze

    Hoi,


    sorry, dass ich erst jetzt antworte ... bissl stressig momentan.


    Wenn sich die UI nicht verändert, obwohl sie es sollte, wird meistens im MainThread irgendwas aufwändigeres gemacht, das dann die UI blockiert. Hatte ich neulich z.B. bei einem SplashScreen, der so lange angezeigt werden sollte, bis diverse Inhalte aus dem Netz geladen wurden, dazu ein Progress Drehrädchen. Habe ich alles im MainThread gemacht, wurde nichtmal das Hintergrundbild geladen sondern nur ein weißer Screen und nach 2-3 Sekunden die nächste Activity ....


    Habs im Endeffekt so gelöst:
    Interface mit callback-Methode erstellt und im SplashScreen implementiert. Die Implementierung enthält nur das Starten der nächsten Activity. In der onCreate des SplashScreens starte ich einen AsyncTask, der this mit bekommt und in der onPostExecute den Callback aufruft. Schon läuft alles das Zeitaufwändig ist in einem AsyncTask, der MainThread hat komplett überhaupt nichts zu tun und wird irgendwann aufgerufen, wenn der AsyncTask fertig ist ....


    Vll. lässt sich das ja irgendwie auf dein Szenario übertragen.
    Verrückte Idee wär, wenn du einen AsyncTask hättest, der in der onPostExecute einen Wert aus den SharedPreferences holt, in der doInBackground nur eine Sekunde oder so wartet, in der onPostExecute dann schaut, ob der Wert schon z.B. 100 erreicht hat, wenn nicht um 1 hoch zählen, in die SharedPreferences speichern, den progress hoch setzen und sich selbst erneut aufrufen ... keine Ahnung ob das funktionieren würde aber den Grundgedanke find ich grad amüsant ;)



    Gruß,
    Matze

    Hoi,


    bin irgendwie auf dem falschen Weg ...
    Damit der mp4parser funktioniert, müssen alle Teile identisch sein. Kann ich aber nicht zu 100% garantieren.


    Glaub ich brauch zwingend ffmpeg4android.


    Ich meld mich wieder.



    Gruß,
    Matze

    Hoi,


    Java
    ArrayList<String> list = new ArrayList<String>(); 
            ...
            list.add("a");
            list.add("b");
            list.add("c");
            ...
            for (String s : list) {
                   // do something with s
                   Log.d("MyApp", "s = " + s);
            }


    je nachdem, welche Datentypen in deiner ArrayList stehen, musst du den Typ String durch deinen tauschen.



    Gruß,
    Matze