Приложение вылетает при изменении ориентации с пейзажа на портрет - PullRequest
0 голосов
/ 28 февраля 2020

ОШИБКА ** 2020-03-01 17: 36: 58.959 6589-6589 / com.studenthelper.bscit E / AndroidRuntime: ИСКЛЮЧИТЕЛЬНОЕ ИСКЛЮЧЕНИЕ: основной Процесс: com.studenthelper.bscit, PID: 6589 java .lang. RuntimeException: невозможно запустить действие ComponentInfo {com.studenthelper.bscit / com.studenthelper.bscit.MainActivity}: java .lang.NullPointerException: попытка вызвать виртуальный метод 'void android .widget.TextView.setText (java .lang.CharSequence) 'для ссылки на пустой объект в android .app.ActivityThread.performLaunchActivity (ActivityThread. java: 2914) в android .app.ActivityThread.handleLaunchActivity (ActivityThread. java: 3049) в android .app.ActivityThread.handleRelaunchActivityInner (ActivityThread. java: 4785) в android .app.ActivityThread.handleRelaunchActivity (ActivityThread. java: 4694) в android .app.servertransaction.ActivityRelaunchItem.execute (ActivityRelaunchItem. java: 69) в android .app.servertransaction.TransactionExecutor.executeCallbacks (TransactionExecutor. java: 108) в android .app.servertransaction.Transa ctionExecutor.execute (TransactionExecutor. java: 68) в android .app.ActivityThread $ H.handleMessage (ActivityThread. java: 1809) в android .os.Handler.dispatchMessage (Обработчик. java: 106) на android .os.Looper.l oop (Looper. java: 193) на android .app.ActivityThread.main (ActivityThread. java: 6692) на java .lang. refle.Method.invoke (собственный метод) в com. android .internal.os.RuntimeInit $ MethodAndArgsCaller.run (RuntimeInit. java: 493) в com. android .internal.os.ZygoteInit.main (ZygoteInit . java: 858) Причина: java .lang.NullPointerException: попытка вызвать виртуальный метод 'void android .widget.TextView.setText (java .lang.CharSequence)' для ссылки на пустой объект в com.studenthelper.bscit.MainActivity.onCreate (MainActivity. java: 21) в android .app.Activity.performCreate (Activity. java: 7140) в android .app.Activity.performCreate (Activity. java: 7131) в android .app.Instrumentation.callActivityOnCreate (Instrumentation. java: 1272) в android .app.ActivityThread.performLaunchActivity (ActivityThread . java: 2894) в android .app.ActivityThread.handleLaunchActivity (ActivityThread. java: 3049) в android .app.ActivityThread.handleRelaunchActivityInner (ActivityThread. java: 4785) в android. app.ActivityThread.handleRelaunchActivity (ActivityThread. java: 4694) в android .app.servertransaction.ActivityRelaunchItem.execute (ActivityRelaunchItem. java: 69) в android .app.servertransaction.TransactionExecutor.executeExallutors. java: 108) в android .app.servertransaction.TransactionExecutor.execute (TransactionExecutor. java: 68) в android .app.ActivityThread $ H.handleMessage (ActivityThread. java: 1809) в android .os.Handler.dispatchMessage (Обработчик. java: 106) в android .os.Looper.l oop (Looper. java: 193) в android .app.ActivityThread.main ( ActivityThread. java: 6692) в java .lang.reflect.Method.invoke (собственный метод) в com. android .internal.os.RuntimeInit $ MethodAndArgsCaller.run (RuntimeInit. java: 493) в com. android .internal.os.ZygoteInit.main (ZygoteInit. java: 858) **

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
    TextView textView=findViewById(R.id.logotext);
    int unicode=0x1F4A1;
    String emoji=getEmoji(unicode);
    String Text="Bsc"+emoji+"T";
    textView.setText(Text);

}
public String getEmoji(int uni)
{
    return new String(Character.toChars(uni));
}

1 Ответ

1 голос
/ 28 февраля 2020

Согласно журналу sh:

com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858) Caused by: 
java.lang.NullPointerException: Attempt to invoke virtual method 'void 
android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference at 
com.studenthelper.bscit.MainActivity.onCreate(MainActivity.java:20) 

Это означает, что ваш textView

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

Не найден в макете R.layout.activity_main , из-за которого при попытке textView.setText(Text); на самом деле ноль и возникает исключение.

Итак, я предлагаю

  1. Проверка textVIew Идентификатор одинаковый в макете? и
  2. Установите getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN); перед setContentView(R.layout.activity_main);
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState); 
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.activity_main);
    TextView textView=findViewById(R.id.logotext);
    int unicode=0x1F4A1;
    String emoji=getEmoji(unicode);
    String Text="Bsc"+emoji+"T";
    textView.setText(Text);

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...