Android Studio开发基础WebView应用启动后崩溃问题求助
崩溃原因&修复方案
1. 核心崩溃原因
你在MainActivity中声明了延迟初始化的webView变量,但没有和布局文件中的WebView控件绑定,直接访问未初始化的lateinit变量会直接抛出异常导致崩溃。同时布局中的WebView缺少底部约束,即使修复初始化问题也无法正常显示页面内容。
修复后的代码
MainActivity.kt
package com.example.finalwebviewtekapps import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.webkit.WebView import android.webkit.WebViewClient class MainActivity : AppCompatActivity() { private val url = "https://google.com" private lateinit var webView: WebView override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // 绑定布局中的WebView控件 webView = findViewById(R.id.webview) // 可选:添加WebView基础配置,避免部分站点加载异常 webView.settings.javaScriptEnabled = true webView.webViewClient = WebViewClient() webView.loadUrl(url) } }
activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <WebView android:id="@+id/webview" android:layout_width="0dp" android:layout_height="0dp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" <!-- 添加底部约束,让WebView撑满全屏 --> app:layout_constraintBottom_toBottomOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout>
可选适配项
如果后续需要加载HTTP协议的站点,可以在AndroidManifest.xml的application节点添加属性:android:usesCleartextTraffic="true"
避免明文流量被系统拦截导致加载失败。
内容的提问来源于stack exchange,提问作者asia
相关产品推荐
相关产品推荐

