2017-11-05 5 views
0

Ich benutze die offiziellen Android Studio Tutorials. Und obwohl mein Code und alles andere, wie das Tutorial mir beibringt, stürzt meine App ab, sobald ich send drücke. (https://developer.android.com/training/basics/firstapp/starting-activity.html | da bin ich rn).App stürzt ab (offizielles Tutorial)

Das ist mein Code für die Haupttätigkeit:

package example.myfirstapp; 

import android.content.Intent; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.EditText; 

public class MainActivity extends AppCompatActivity { 
    public static final String EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE"; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 

    /** Called when the user taps the Send button */ 
    public void sendMessage(View view) { 
     Intent intent = new Intent(this, DisplayMessageActivity.class); 
     EditText editText = (EditText) findViewById(R.id.editText); 
     String message = editText.getText().toString(); 
     intent.putExtra(EXTRA_MESSAGE, message); 
     startActivity(intent); 
    } 
} 

Und das ist mein Code für die Anzeige Meldung Aktivität

package example.myfirstapp; 

import android.content.Intent; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.widget.TextView; 

public class DisplayMessageActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_display_message); 

     // Get the Intent that started this activity and extract the string 
     Intent intent = getIntent(); 
     String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE); 

     // Capture the layout's TextView and set the string as its text 
     TextView textView = findViewById(R.id.textView); 
     textView.setText(message); 
    } 

Und das ist, was Logcat sagt, ist falsch

11-05 12: 36: 51.627 2265-2265/com.google.android.googlequicksearchbox: suchen E/SearchServiceStarter: Task 174 ist fehlgeschlagen oder hat ein Zeitlimit überschritten. Client 9963085251046432 Trennen von SearchService! java.util.concurrent.CancellationException: Die Aufgabe wurde abgebrochen. unter com.google.common.util.concurrent.d.da (Quelldatei: 80) unter com.google.common.util.concurrent.d.get (Quelldatei: 62) unter com.google.common.util. concurrent.cf.o (Quelldatei: 2) unter com.google.common.util.concurrent.ax.m (Quelldatei: 50) bei com.google.common.util.concurrent.az.run (Quelldatei: 5) bei com.google.android.apps.gsa.shared.util.concurrent.a.bf.run (Source: 2) bei android.os.Handler.handleCallback (Handler.java:790) bei android.os .Handler.dispatchMessage (Handler.java:99) bei android.os.Looper.loop (Looper.java:164) bei android.app.ActivityThread.main (ActivityThread.java:6494) bei java.lang.reflect.Method.invoke (native Methode) bei com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run (RuntimeInit.java:438) bei com.android.internal.os.ZygoteInit.main (ZygoteInit.java:807)

Heres was Logcat sagt jetzt

11-07 12: 24: 47.927 4134-4134/beispiel.myfirstapp E/AndroidR untime: FATAL AUSNAHME: Haupt Prozess: example.myfirstapp, PID: 4134 java.lang.IllegalStateException: ausführen konnte nicht Methode für android: onClick bei android.support.v7.app.AppCompatViewInflater $ DeclaredOnClickListener.onClick (AppCompatViewInFlater.java:293) bei android.view.View.performClick (View.java:6294) bei android.view.View $ PerformClick.run (View.java:24770) bei android.os.Handler.handleCallback (Handler.java:790) bei android.os.Handler.dispatchMessage (Handler.java:99) bei android.os.Looper.loop (Looper .java: 164) bei android.app.ActivityThread.main (ActivityThread.java:6494) bei java.lang.reflect.Method.invoke (native Methode) bei com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run (RuntimeInit.java:438) bei com.android.internal.os.ZygoteInit.main (ZygoteInit.java:807) Verursacht durch: java.lang.reflect.InvocationTargetException auf Java .lang.reflect.Method.invoke (systemeigene Methode) unter android.support.v7.app.AppCompatViewInflater $ DeclaredOnClickListener.onClick (AppCompatViewInFlater.java:288) bei android.view.View.VirformClick (View.java:6294) bei android.view.View $ PerformClick.run (View.java:24770) bei android.os.Handler.handleCallback (Handler.java:790) bei android.os.Handler.dispatchMessage (Handler.java:9 9) bei android.os.Looper.loop (Looper.java:164) bei android.app.ActivityThread.main (ActivityThread.java:6494) bei java.lang.reflect.Method.invoke (native Methode) um com.android.internal.os.RuntimeInit $ MethodeAndArgsCaller.run (RuntimeInit.java:438) bei com.android.internal.os.ZygoteInit.main (ZygoteInit.java:807) verursacht durch: android.content. ActivityNotFoundException: kann nicht gefunden werden explizite Aktivitätsklasse {Beispiel.meinfirstapp/example.myfirstapp.DisplayMessageActivity}; Hast du diese Aktivität in deiner AndroidManifest.xml deklariert? bei android.app.Instrumentation.checkStartActivityResult (Instrumentation.java:1933) bei android.app.Instrumentation.execStartActivity (Instrumentation.java:1616) bei android.app.Activity.startActivityForResult (Activity.java:4488) bei android.support.v4.app.BaseFragmentActivityApi16.startActivityForResult (BaseFragmentActivityApi16.java:54) bei android.support.v4.app.FragmentActivity.startActivityForResult (FragmentActivity.java:67) bei android.app.Activity. startActivityForResult (Activity.java:4446) um android.support.v4.app.FragmentActivity.startActivityForResult (FragmentActivity.java:720) bei android.app.Activity.startActivity (Activity.java:4807) bei android.app.Activity.startActivity (Activity.java:4775) bei example.myfirstapp.MainActivity.sendMessage (MainActivity.java:22) bei java.lang.reflect.Method.invoke (Mutter Methode) bei android.support.v7.app.AppCompatViewInflater $ DeclaredOnClickListener.onClick (AppCompatViewInflater .java: 288) bei android.view.View.performClick (View.java:6294) bei android.view.View $ PerformClick.run (View.java:24770) bei android .os.Handler.handleCallback (Handler.java:790) bei android.os.Handler.dispatchMessage (Handler.java:99) bei android.os.Looper.loop (Looper.java:164) bei android.app .ActivityThread.main (ActivityThread.java:6494) bei java.lang.reflect.Method.invoke (Mutter Methode) bei com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run (RuntimeInit.java:438) bei com.android.internal.os.ZygoteInit.main (ZygoteInit.java:807)

Antwort

-1

die Sie interessieren und auch, dass Sie prüfen, ob beide Aktivitäten hinzugefügt haben in manifestieren oder nicht.

Textansicht textView = (TextView) findViewById (R.id.textView); ...... dies in DisplayMessageActivity ändern.

public static final Zeichenfolge EXTRA_MESSAGE = "MESSAGE"; ...... dies in MainActivity ändern.

+0

Senden Sie die XML- und Manifestdatei. –

-1

Im Bereich "public void sendMessage (Ansicht anzeigen)" können Sie das View-Argument entfernen, da Sie es nicht benötigen.

So kann es genau wie diese "public void nachrichts()" sein

Auch in der Display-Meldung Aktivität "Textview Textview = findViewById (R.id.textView);" hier muss er Casting hinzufügen, so dass es so aussieht:

"TextView textView = (TextView) findViewById (R.id.textView);"

Sollte danach gut funktionieren.

0

Der von Ihnen kopierte Logcat-Fehler bezieht sich nicht auf Ihre Anwendung. Sie können Logcat-Filter in Android Studio verwenden, um die tatsächliche Ursache des Anwendungsabsturzes zu finden. Es gibt mindestens zwei Varianten für Sie:

  1. Wählen Sie "Nur ausgewählte Anwendung" Filter auf der Logcat Panel
  2. Typ "FATAL" Keyword-Feld auf dem Logcat Panel suchen

PS: höchstwahrscheinlich eine der Aktivitäten registrieren vergessen (oder beides) in AndroidManifest.xml

PPS (für andere Kommentatoren) Datei: Android Studio 3.0 wi Das neue Gradle-Plugin benötigt kein Ergebnis von findViewById mehr. Upgrade und genießen!

+0

Re: PPS: Es ist nicht Studio oder Gradle Plugin; Es ist Kompilieren SDK 26, um für die geänderte 'findViewById()' Signatur zu danken. – laalto

+0

@laalto Sie haben Recht, findViewById hat jetzt eine generische Signatur. Ich glaubte, es ist eine Art "Compiler Zucker". Danke für das Zeigen. –

+0

hey, also habe ich den Logcat-Filter angewendet, und das ist herausgekommen (in meiner Frage oben), aber ich bekomme immer noch nicht was zu tun -.- – z3nox