Android Wie kann ich diesen Fehler beheben?

RaceShafter

Mitglied
Das hier ist mein Code:

Java:
package de.jakkit.me.hello;

import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
import java.net.URI
import java.awt.Desktop;

public class Main extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                Intent intent = new Intent(Intent.ACTION_SEND);
                intent.setType("text/html");
                intent.putExtra(Intent.EXTRA_EMAIL, "emailaddress@emailaddress.com");
                intent.putExtra(Intent.EXTRA_SUBJECT, "Subject");
                intent.putExtra(Intent.EXTRA_TEXT, "I'm email body.");

                startActivity(Intent.createChooser(intent, "Send Email"));
            }
        });
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {

            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}
 
Das erste was du tun solltest: Uns verraten welchen Fehler du meinst. Du hast uns nur Code gepostet und schreibst etwas von einem Fehler, aber nicht welcher Fehler und wo er auftritt.
Etwas mehr Informationen brauchen wir schon.

Ansonsten: Fehler + StackTrace verraten schon viel über den Fehler und den Ort des Auftreten. Normalerweise findet man mit der Fehlermeldung unter Google schon viele Threads wo das Problem behandelt wurde (gibt natürlich ausnahmen)
 
Das erste was du tun solltest: Uns verraten welchen Fehler du meinst. Du hast uns nur Code gepostet und schreibst etwas von einem Fehler, aber nicht welcher Fehler und wo er auftritt.
Etwas mehr Informationen brauchen wir schon.

Ansonsten: Fehler + StackTrace verraten schon viel über den Fehler und den Ort des Auftreten. Normalerweise findet man mit der Fehlermeldung unter Google schon viele Threads wo das Problem behandelt wurde (gibt natürlich ausnahmen)


Oh nein -.- Ich Idiot habe echt die Meldung vergessen. Tut mir Leid. Hier ist die besagte Meldung:

Method invocation 'fab.setOnClickListener(new View.OnClickListener() { @Override public void on...' may produce 'java.lang.NullPointerException'
 
Für mich klingt das nicht nach einem Fehler, sondern nur nach einer Warnung deiner IDE das der markierte Code eine NullPointerException auslösen könnte.
Damit das nicht passiert sollest du den Ausdruck in eine if-Abfrage geben, welche entsprechend auf null prüft.
 
Verstehe ich nicht? Was soll ich denn auf null prüfen?

Code:
if(??? != null){

Hier rein soll der Mail Code oder wie?

}else{

}
 
Java:
        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
.....

Du holst dir über findViewById(R.id.fab) einen FloatingActionButton und willst ihm einen ClickListener hinzufügen.
Was denkst du passiert wenn kein FloatingActionButton gefunden wird? -> die Variable fab wäre null.
Sprich du musst kontrollieren ob ein passender Button gefunden wurde.
 
Bin noch relativ neu in Java. Zumindest habe ich bisher nur an einem Minecraft Plugin getüftelt. Aber eine Android App habe ich noch nicht erstellt. Leider weiß ich auch nicht, wie ich das jetzt prüfen soll.

Ich würde auf folgendes tippen:

Java:
if(fab != null){

}
 
Bin noch relativ neu in Java. Zumindest habe ich bisher nur an einem Minecraft Plugin getüftelt. Aber eine Android App habe ich noch nicht erstellt.

Ohne Grundlagen wird man halt früher oder später an Grenzen stoßen.
Dein Code zur Überprüfung stimmt.

Hinweis: Dein "Fehler" ist kein Fehler sondern nur eine Warnung deiner IDE. Sprich auch ohne der Überprüfung würde dein Code kompilieren und ausführbar sein. Aber es wäre möglich das an dieser Stelle ein Fehler passiert.
 
Nein, eben nicht. Denn das Problem ist, dass ich die .apk nicht erstellen kann. Ich habe es schon versucht. Ja, ich habe mich noch nicht viel mit den Grundlagen beschäftigt. Das mache ich nebenbei. Einige Videos habe ich mir schon zum Thema Grundlagen angeschaut.

Code:
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
if(fab != null){
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                Intent intent = new Intent(Intent.ACTION_SEND);
                intent.setType("text/html");
                intent.putExtra(Intent.EXTRA_EMAIL, "emailaddress@emailaddress.com");
                intent.putExtra(Intent.EXTRA_SUBJECT, "Subject");
                intent.putExtra(Intent.EXTRA_TEXT, "I'm email body.");

                startActivity(Intent.createChooser(intent, "Send Email"));
            }
        });
}

Ist das so richtig, oder gehört die Abfrage woanders hin? Das hier scheint mir die einzige logische Stelle zu sein. Nach dem der Button gesucht wurde.
 
Ah so. Ja, die Stelle der Abfrage war richtig und die Warnung ist weg danke 😀.. Nun habe ich nur noch ein Problem. Ich öffne das Ganze in Google Mail, aber meine Adresse, hier im Code emailaddress@emailaddress.com, wird nicht eingetragen. Das Anliegen schon und Body habe ich leer gelassen, da man das ja selbst eingeben soll. Wo könnte der Fehler liegen? Habe nichts verändert außer meine Adresse und die IF-Abfrage eingesetzt..
 

Zurück
Oben