Я начинаю изучать разработку приложений для Android. В Android Studio gradle не было обнаружено никаких ошибок. Но показал «К сожалению, имя приложения остановилось» на моем телефоне. Я пытаюсь сделать простой EditTex для textview через приложение кнопки. Я думаю, что это легко, но явно не. По крайней мере, с этой фатальной ошибкой. Надеюсь, вы сможете помочь мне в этой ситуации. И, может быть, это вопрос.«К сожалению, имя приложения остановлено» Простое приложение
Вот LogCat
I/art: Late-enabling -Xcheck:jni
D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
E/AndroidRuntime: Process: com.winwin.kapurs.tester1, PID: 26610
E/AndroidRuntime: java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.winwin.kapurs.tester1/com.winwin.kapurs.tester1.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.view.Window.findViewById(int)' on a null object reference
E/AndroidRuntime: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2269)
E/AndroidRuntime: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2420)
E/AndroidRuntime: at android.app.ActivityThread.access$900(ActivityThread.java:154)
E/AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1321)
E/AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:102)
E/AndroidRuntime: at android.os.Looper.loop(Looper.java:135)
E/AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:5292)
E/AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime: at java.lang.reflect.Method.invoke(Method.java:372)
E/AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
E/AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699)
E/AndroidRuntime: Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.view.Window.findViewById(int)' on a null object reference
E/AndroidRuntime: at android.app.Activity.findViewById(Activity.java:2072)
E/AndroidRuntime: at com.winwin.kapurs.tester1.MainActivity.<init>(MainActivity.java:11)
E/AndroidRuntime: at java.lang.reflect.Constructor.newInstance(Native Method)
E/AndroidRuntime: at java.lang.Class.newInstance(Class.java:1606)
E/AndroidRuntime: at android.app.Instrumentation.newActivity(Instrumentation.java:1066)
E/AndroidRuntime: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2259)
E/AndroidRuntime: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2420)
E/AndroidRuntime: at android.app.ActivityThread.access$900(ActivityThread.java:154)
E/AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1321)
E/AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:102)
E/AndroidRuntime: at android.os.Looper.loop(Looper.java:135)
E/AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:5292)
E/AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime: at java.lang.reflect.Method.invoke(Method.java:372)
Вот мой основной код:
public class MainActivity extends AppCompatActivity {
final EditText mess = (EditText) findViewById(R.id.editText);
final TextView txt = (TextView) findViewById(R.id.textView);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void onClick(View v) {
if (txt.getText().toString().equals("")) {
String editTextValue = mess.getText().toString();
txt.setText(editTextValue);
} else {
txt.setText("");
mess.setText("");
}
}
}
Ну, я переехал эти инициализации в "OnCreate(), но затем получил 4 ошибки для неизвестных переменного в 'onClick (View v)' –
Конечно, сохраните объявление переменной на уровне класса, но инициализируйте в 'onCreate()' – laalto