Я использую официальные руководства по Android Studio. И хотя мой код и все остальное, как учит меня учебник, мое приложение продолжает падать, как только я нажимаю «Отправить». (https://developer.android.com/training/basics/firstapp/starting-activity.html | вот где я нахожусь).
Это мой код для основного действия:
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);
}
}
А это мой код для активности отображения сообщений
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);
}
И это то, что Logcat считает неправильным
11-05 12:36:51.627 2265-2265/com.google.android.googlequicksearchbox:search E/SearchServiceStarter: Задача 174 не выполнена или истекло время ожидания. Клиент 9963085251046432 отключение от SearchService! java.util.concurrent.CancellationException: задача отменена. на com.google.common.util.concurrent.d.da(SourceFile:80) на com.google.common.util.concurrent.d.get(SourceFile:62) на com.google.common.util.concurrent.cf.o(SourceFile:2) на com.google.common.util.concurrent.ax.m (SourceFile: 50) на com.google.common.util.concurrent.az.run(SourceFile:5) в com.google.android.apps.gsa.shared.util.concurrent.a.bf.run(SourceFile:2) в android.os.Handler.handleCallback(Handler.java:790) в android.os.Handler.dispatchMessage(Handler.java:99) на android.os.Looper.loop(Looper.java:164) в android.app.ActivityThread.main(ActivityThread.java:6494) в java.lang.reflect.Method.invoke (собственный метод) в com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) на com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
Вот что сейчас говорит Logcat
11-07 12:24:47.927 4134-4134/example.myfirstapp E/AndroidRuntime: ФАТАЛЬНОЕ ИСКЛЮЧЕНИЕ: главная Процесс: example.myfirstapp, PID: 4134 java.lang.IllegalStateException: не удалось выполнить метод для Android: onClick в android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:293) в android.view.View.performClick(View.java:6294) в android.view.View$PerformClick.run(View.java:24770) в android.os.Handler.handleCallback(Handler.java:790) в android.os.Handler.dispatchMessage(Handler.java:99) на android.os.Looper.loop(Looper.java:164) в android.app.ActivityThread.main(ActivityThread.java:6494) в java.lang.reflect.Method.invoke (собственный метод) в com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) на com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807) Вызвано: java.lang.reflect.InvocationTargetException в java.lang.reflect.Method.invoke (собственный метод) в android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288) в android.view.View.performClick(View.java:6294) в android.view.View$PerformClick.run(View.java:24770) в android.os.Handler.handleCallback(Handler.java:790) в android.os.Handler.dispatchMessage(Handler.java:99) на android.os.Looper.loop(Looper.java:164) в android.app.ActivityThread.main(ActivityThread.java:6494) в java.lang.reflect.Method.invoke (собственный метод) в com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) на com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807) Вызвано: android.content.ActivityNotFoundException: невозможно найти явный класс активности {example.myfirstapp/example.myfirstapp.DisplayMessageActivity}; имеют вы объявили об этой активности в своем AndroidManifest.xml? в android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1933) в android.app.Instrumentation.execStartActivity(Instrumentation.java:1616) в android.app.Activity.startActivityForResult(Activity.java:4488) в android.support.v4.app.BaseFragmentActivityApi16.startActivityForResult(BaseFragmentActivityApi16.java:54) в android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:67) в android.app.Activity.startActivityForResult(Activity.java:4446) в android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:720) в android.app.Activity.startActivity(Activity.java:4807) в android.app.Activity.startActivity(Activity.java:4775) в example.myfirstapp.MainActivity.sendMessage(MainActivity.java:22) в java.lang.reflect.Method.invoke (собственный метод) в android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288) в android.view.View.performClick(View.java:6294) в android.view.View$PerformClick.run(View.java:24770) в android.os.Handler.handleCallback(Handler.java:790) в android.os.Handler.dispatchMessage(Handler.java:99) на android.os.Looper.loop(Looper.java:164) в android.app.ActivityThread.main(ActivityThread.java:6494) в java.lang.reflect.Method.invoke (собственный метод) в com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) на com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
Re: PPS: это не плагин Studio или Gradle; это скомпилировать SDK 26, чтобы поблагодарить за измененную подпись
findViewById()
.@laalto вы правы, теперь у findViewById есть общая подпись. Я полагал, что это своего рода "компиляторный сахар". Спасибо за указание.
эй, поэтому я применил фильтр Logcat, и вот что получилось (в моем вопросе выше), но я все еще не понимаю, что делать -.-
@z3nox ты на правильном пути. Если вы посмотрите на обновленный вывод Logcat, вы обнаружите, что ошибка представляет собой последовательность исключений: «Вызвано... вызвано... вызвано... вызвано...». Поэтому вам нужна последняя версия: «ActivityNotFoundException: невозможно найти явный класс активности {example.myfirstapp/example.myfirstapp.DisplayMessageActivity}; вы объявили эту активность в своем AndroidManifest.xml?». Как упоминалось выше, вам необходимо объявить DisplayMessageActivity в вашем файле AndroidManifest.