Beiträge von nono124

    Leider wieder falsch.
    textViewThree.setText(String.valueOf(test));
    test ist schon ein String.
    String.valueOf(test1) will einen int und kein String;



    textViewThree.setText(test);
    textViewFour.setText(test1);


    Schaue dir an von welchen Typ deine Variablen sind.

    Hallo also da sind auf die Schnelle betrachtet einige Fehler drin.


    Du scheinst Probleme mit „String“ und“ int“ zu haben.



    Zeile 19: geht so nicht. Was du da eventuell zurück bekommst ist die Objektinstanz als String willst du bestimmt nicht. Denke u willst auf den Progress Werst zugreifen .
    String milliliter = String.valueOf(seekBarOne.getProgress());



    Zeile 20: das gleiche



    Zeile 30: „setText()“ erwartet einen String keinen int


    textViewThree.setText(String.valueOf(basis));



    Zeile 34,38, das gleiche

    so das solte laufen.


    nur wnn du ein zweites bild machen willst soltest du voher die datei löschen und wieder erstellen.

    sieht so aus als ob du nicht die Permissoin für die Cammera hast


    09-07 13:20:28.333 9628-9628/com.jimdo.wachtel_web.fishcounter W/System.err: java.lang.SecurityException: Permission Denial: starting Intent { act=android.media.action.IMAGE_CAPTURE flg=0x3 cmp=com.sec.android.app.camera/.Camera launchParam=MultiScreenLaunchParams { mDisplayId=0 mFlags=0 } clip={text/uri-list U:file:///storage/emulated/0/FotoApp/bild.png} (has extras) } from ProcessRecord{dcf7483 9628:com.jimdo.wachtel_web.fishcounter/u0a308} (pid=9628, uid=10308) with revoked permission android.permission.CAMERA


    die datei müsste erstellt worden sein wenn das der log von anfang an ist. Kein fehler mehr bei der URL.

    HI
    Ich hatte dir ja schon gesagt das das Verzeichnis auch existieren muss. Wenn nicht musst du es auch erst erstellen.
    denn du willst auf einen Unter Ordner zugreifen der noch nicht existirt.
    da musst du immer mkdirs() machen.



    File dir = new File(Environment.getExternalStorageDirectory(), "FotoApp");
    dir.mkdirs();
    birdlife = new File(dir, “bild.png")
    bilduri = Uri.fromFile(bildfile);



    für die Url muss die Datei und der Ordner existieren.

    Frage wird den überhaupt die Kamera App geöffnet?
    Hast du auch die Perimission auch im manifest gesetz?


    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-feature android:name="android.hardware.camera" />
    die perimission für die Kammera solltest du auch zur Laufzeit anfordern.


    Erstelle das File erst nachdem du die Perimission angefordert hast.
    Und du musst auch den Ordner wenn nicht vorhanden auch erst erstellen.


    File imagesFolder = new File(Environment.getExternalStorageDirectory().getAbsolutePath(), "DCIM/Bilderordner");
    imagesFolder.mkdirs();


    Aber bitte in der onCreate nicht im Klassenrumpf.

    Hi Du könntest auch erst mal etwas erklären was den genau nicht geht. Dann brauchen wir hier nicht den gesamten Code durch arbeiten. Das du den Code gepostet hast ist schon mal gut aber bitte in Zukunft etwas genauer erklärt was nicht geht .


    Als erstens kein Statements im Klassenrumpf. Da werden nur primitive variablen initialisiert.

    • File bildfile = new File(Environment.getExternalStorageDirectory() + "/FotoApp/bild.png");
    • Uri bilduri = Uri.fromFile(bildfile);

    Gehört in die onCreat die Definition kann im Rumpf sein.

    mal ehrlich was bringt es dir wenn es in der oncreate abstürzt es in die Playagain zu setzen.da stürzt sie auch ab. Dann stimmt was mit deinem layout nicht.
    Es giebtt auch eine neue Support lib.
    Zeige mal die onCreate.
    Wo hast du noch die findViewById.. Aufgerufen?
    Irgendwo musst du ja schon mal das layout benutzen sonst könntentest du nicht die erste Runde spielen und genau das will ich wissen. Sonst kann ich dort nicht weiter helfen.

    Hi erstens gehört die findviewbyid in die onCreate und nicht in die playagain Methode.
    Auch den Mediaplayer solltest du in der onCreate inizalisiren und nicht im Klassenrumpf. Da solte man nur primitive datentypen zuweisen. Wenn du mal eine zweite activity einbindest wistu Probleme damit haben. Mache es gleich richtig.
    Kennst du dich mit dem Debugger aus denn damit kannst du herausfinden wo bei welcher Zeile deine app abstürzt.


    Gehe ich richtig auf in der Annahme das die app beim ersten Durchlauf richtig funktioniert?

    Hi
    also das grau sagt das du die Variable zwar estellst aber nicht in deiner App verwendest.


    wenn du zB. in der onCreate
    GridLayout spielfeldLayout = (GridLayout)findViewById(R.id.spielfeldLayout);
    Screibst ist das eine Lokale Variable die nur in der onCreate sichtbar ist.


    Deine Vielleicht Global im KlassenRumf erstellet Variable hat den gleichen Namen ist aber nicht die gleiche Variable.
    GridLayout spielfeldLayout;


    Wenn du nun zb. im Onklick listner auf die Variable zugreifen willst, greifst du auf die globale nicht und lehre variable zu und deine App türtzt ab.



    also erstelle am besten die Variable im Klassenrumpf global und Inizalisire sie in der onCreat ohne den VVariablen Typ anzugeben.
    spielfeldLayout = (GridLayout)findViewById(R.id.spielfeldLayout);



    somit kannst du von überall in der Klasse auf die Variable zugreifen.


    dann wird sie auch nicht mehr grau sein.

    wie sieht den das layout aus? Ist R.id.spielfeldLayout auch in dem aktuell geladenen layout vorhanden und vor allen ist das auch ein Gridlayout.


    Ich glaube weniger das es an dem findViewById ligt auch wenn die id nicht gefunden wird stürzt die app nicht ab. Sie gibt dann eben einen nullpointer zurück.
    Und im weiteren Verlauf des Programm wenn du auf die view ( grid layout)zugreifen willst stürz sie ab.


    Wo in der Klasse hast du denn die Definition stehen?
    GridLayout spielfeldLayout;
    Diese Zeile alleine kann nie und nimmer für den Absturz verantwortlich sein.
    Dann eher der weitere Verlauf der app.


    Du sprichst von mehreren Klassen in welcher klasse bist du mit deiner Methode?



    vielen Dank für deine schnelle Hilfe, aber es wird ausgegraut.
    Was meinst du damit?

    Hallo
    In Bezug auf den Link von Andy61, richtig die Version API v1 ist veraltet aber was hindert dich daran api v2 zu benutzen?


    Willst du auf beiden Geräten gleichzeitig arbeiten?
    Wenn nicht sollte es doch reichen den zeitstempel der Dateien zu benutzen. Oder willst du auch eine Inhaltes basierende synconisirung machen?

    Auf Dateiebene sollte das nicht so schwierig sein . Wenn du sicherstellt das nur ein Gerät eingelogt ist.