Webview Android Project SwipeRefreshLayout Проблема - PullRequest
0 голосов
/ 05 апреля 2020

Я создал приложение для веб-просмотра и попытался добавить макет refre sh, но он не открывается в моем эмуляторе и говорит, что приложение продолжает останавливаться (окно вывода сборки: сборка выполнена успешно) Я надеюсь, что вы можете помочь мне узнать решение

Activity_main


<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">


    <android.support.v4.widget.SwipeRefreshLayout
        android:id="@+id/swipe"
        android:layout_width="match_parent"
        android:layout_height="match_parent">


        <WebView
            android:id="@+id/wb"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />


    </android.support.v4.widget.SwipeRefreshLayout>

</RelativeLayout>

MainActivity


package com.furkan.indoorpositioning;

import androidx.appcompat.app.AppCompatActivity;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;

import android.os.Bundle;
import android.view.View;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;

public class MainActivity extends AppCompatActivity implements SwipeRefreshLayout.OnRefreshListener {

    WebView webView;
    String myurl = "https://www.google.com.tr/";
    SwipeRefreshLayout swipe = findViewById(R.id.swipe);

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

        swipe.setOnRefreshListener(this);

        webView = findViewById(R.id.wb);
        webView.getSettings().setJavaScriptEnabled(true);
        webView.loadUrl(myurl);
        swipe.setRefreshing(true);
        webView.setWebViewClient(new WebViewClient() {

            @Override
            public void onPageFinished(WebView view, String url) {
                swipe.setRefreshing(false);
                super.onPageFinished(view, url);
            }

            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;
            }


        });


    }

    public void onBackPressed() {
        if (webView.canGoBack())
            webView.goBack();
        else
            super.onBackPressed();


    }

    @Override
    public void onRefresh() {
        webView.reload();
        swipe.setRefreshing(false);
    }
}


Ошибки в окне выполнения

04/05 03:06:59: Launching 'app' on Pixel API 25.
$ adb shell am start -n "com.furkan.indoorpositioning/com.furkan.indoorpositioning.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
Connected to process 10977 on device 'emulator-5554'.
Capturing and displaying logcat messages from application. This behavior can be disabled in the "Logcat output" section of the "Debugger" settings page.
W/System: ClassLoader referenced unknown path: /data/app/com.furkan.indoorpositioning-2/lib/x86
D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.furkan.indoorpositioning, PID: 10977
    java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.furkan.indoorpositioning/com.furkan.indoorpositioning.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.pm.ApplicationInfo android.content.Context.getApplicationInfo()' on a null object reference
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2567)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726)
        at android.app.ActivityThread.-wrap12(ActivityThread.java)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:154)
        at android.app.ActivityThread.main(ActivityThread.java:6119)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
     Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.pm.ApplicationInfo android.content.Context.getApplicationInfo()' on a null object reference
        at android.content.ContextWrapper.getApplicationInfo(ContextWrapper.java:149)
        at android.view.ContextThemeWrapper.getTheme(ContextThemeWrapper.java:157)
        at android.content.Context.obtainStyledAttributes(Context.java:575)
        at androidx.appcompat.app.AppCompatDelegateImpl.createSubDecor(AppCompatDelegateImpl.java:692)
        at androidx.appcompat.app.AppCompatDelegateImpl.ensureSubDecor(AppCompatDelegateImpl.java:659)
        at androidx.appcompat.app.AppCompatDelegateImpl.findViewById(AppCompatDelegateImpl.java:479)
        at androidx.appcompat.app.AppCompatActivity.findViewById(AppCompatActivity.java:214)
        at com.furkan.indoorpositioning.MainActivity.<init>(MainActivity.java:16)
        at java.lang.Class.newInstance(Native Method)
        at android.app.Instrumentation.newActivity(Instrumentation.java:1078)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2557)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726) 
        at android.app.ActivityThread.-wrap12(ActivityThread.java) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477) 
        at android.os.Handler.dispatchMessage(Handler.java:102) 
        at android.os.Looper.loop(Looper.java:154) 
        at android.app.ActivityThread.main(ActivityThread.java:6119) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776) 

04/05 03:06:59: запуск приложения на Pixel API 25. $ adb shell am start -n "com.furkan.indoorpositioning / com.furkan.indoorpositioning. MainActivity "-a android .intent.action.MAIN - c android .intent.category.LAUNCHER Подключено к процессу 10977 на устройстве 'эмулятор-5554'. Захват и отображение сообщений logcat из приложения. Это поведение можно отключить в разделе «Выход Logcat» на странице настроек «Отладчик». W / System: ClassLoader ссылается на неизвестный путь: /data/app/com.furkan.indoorpositioning-2/lib/x86 D / AndroidRuntime: выключение виртуальной машины E / AndroidRuntime: FATAL EXCEPTION: main Процесс: com.furkan.indoorpositioning, PID: 10977 java .lang.RuntimeException: Невозможно создать экземпляр действия. ComponentInfo {com.furkan.indoorpositioning / com.furkan.indoorpositioning.MainActivity}: java .lang.NullPointerException: попытка вызвать виртуальный метод 'android .content. pm.ApplicationInfo android .content.Context.getApplicationInfo () 'для пустой ссылки на объект в android .app.ActivityThread.performLaunchActivity (ActivityThread. java: 2567) в android .app.ActivityThread.handleLaunchActivity ( ActivityThread. java: 2726) в android .app.ActivityThread.-wrap12 (ActivityThread. java) в android .app.ActivityThread $ H.handleMessage (ActivityThread. java: 1477) в android .os.Handler.dispatchMessage (Обработчик. java: 102) в android .os.Looper.l oop (Looper. java: 154) в android .app.ActivityThread.main (ActivityThread . java: 6119) t java .lang.reflect.Method.invoke (собственный метод) в com. android .internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit. java: 886) в com. android .internal. os.ZygoteInit.main (ZygoteInit. java: 776) Причина: java .lang.NullPointerException: попытка вызвать виртуальный метод 'android .content.pm.ApplicationInfo android .content.Context.getApplicationInfo ( ) 'для ссылки на пустой объект в android .content.ContextWrapper.getApplicationInfo (ContextWrapper. java: 149) в android .view.ContextThemeWrapper.getTheme (ContextThemeWrapper. java: 157) в android. content.Context.obtainStyledAttributes (Context. java: 575) в androidx.appcompat.app.AppCompatDelegateImpl.createSubDecor (AppCompatDelegateImpl. java: 692) в androidx.appcompat * .appl .mpmpl. 659) в androidx.appcompat.app.AppCompatDelegateImpl.findViewById (AppCompatDelegateImpl. java: 479) в androidx.appcompat.app.AppCompatActivity.findViewById (AppCompatActivity. java.fkan at. *1061*.fkan at. ndoorpositioning.MainActivity. (MainActivity. java: 16) в java .lang.Class.newInstance (собственный метод) в android .app.Instrumentation.newActivity (Instrumentation. java: 1078) в android .app.ActivityThread.performLaunchActivity (ActivityThread. java: 2557) в android .app.ActivityThread.handleLaunchActivity (ActivityThread. java: 2726) в android .app.ActivityThread.-wrap12 (ActivityThread. java) в android .app.ActivityThread $ H.handleMessage (ActivityThread. java: 1477) в android .os.Handler.dispatchMessage (Обработчик. java: 102) в android .os.Looper .l oop (Looper. java: 154) в android .app.ActivityThread.main (ActivityThread. java: 6119) в java .lang.reflect.Method.invoke (собственный метод) в com. android .internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit. java: 886) на com. android .internal.os.ZygoteInit.main (ZygoteInit. java: 776)

...