До сих пор никто не смог предоставить ответ или решение, которое решает эту проблему.Я надеюсь, что кто-то может внести свой вклад, потому что я в растерянности.И эта статья ( Что такое исключение NullPointerException и как я могу его исправить? ), даже если все продолжают рекомендовать его в качестве руководства для «нулевых исключений», мне трудно применить его кмоя ситуация, связанная с webView и настройками, которые я указал в java-скрипте ниже.
Если я удаляю строки webView из действия, страница действия нормально загружается в приложение.Все белое и без содержания конечно, но оно загружается.Как только я добавляю код webView обратно в активность;приложение вылетает, как только оно пытается загрузить.В то время как это, кажется, терпит крах, приложение фактически загружает страницу активности во всем белом и бросает себя к фону устройства, не закрывая, и выскакивает уведомление, заявляющее очевидное, что приложение упало.Он не выходит из приложения, он просто выбрасывает его на задний план и отправляет сообщение об ошибке.Поэтому я считаю, что средство можно найти в обзоре кода, связанного с webView, но я не могу его найти, и ни один из ранее рекомендованных методов не исправил его.И я должен отметить, что это происходит как на моем фактическом подключенном устройстве, так и на эмуляторе Android Studio, поэтому я не верю, что это были настройки телефона или проблема с кешем.
Вот мой LogCat
05-08 14:19:03.423 31797-31797/com.app.sega E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.app.sega, PID: 31797
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.app.sega/com.app.sega.sega}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.webkit.WebView.findViewById(int)' on a null object reference
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.webkit.WebView.findViewById(int)' on a null object reference
at com.app.sega.sega.onCreate(sega.java:18)
Я только что обновил содержимое моих файлов ниже, пытаясь это исправить.Это то, что у меня есть на данный момент.Получаю те же результаты.
Скрипт webView для нового действия в sega.java
package com.app.sega;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import androidx.appcompat.app.AppCompatActivity;
public class sega extends AppCompatActivity {
private WebView webview_s;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sega);
webview_s = (WebView)webview_s.findViewById(R.id.webview_sega);
webview_s.getSettings().getJavaScriptEnabled();
webview_s.setWebViewClient(new WebViewClient_s());
webview_s.setInitialScale(1);
webview_s.getSettings().getBuiltInZoomControls();
webview_s.getSettings().getUseWideViewPort();
}
private class WebViewClient_s extends WebViewClient {
public boolean shouldOverrideURLLoading (WebView view, String url) {
if (Uri.parse(url).getHost().equals("www.southeastgeorgiatoday.com")) {
return false;
}else {
Intent intent_sega = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(intent_sega);
return true;
}
}
}
}
В строке ничего не видно (sega.java:18), который оставлен пустым / пустым.Это то, что в строке 18:
webview_s = (WebView)webview_s.findViewById(R.id.webview_sega);
Где находится нулевая запись?Вот XML WebView, расположенный в activity_sega.xml.Вы можете видеть, что я ввел правильный идентификатор WebView в коде Java выше.
<WebView android:id="@+id/webview_sega"
android:layout_width="match_parent"
android:layout_height="match_parent" />