当前位置: 首页 > 知识库问答 >
问题:

对android类进行充气时出错。网络工具包。android 5上的WebView

姬成荫
2023-03-14

我在Android 5.0(API 21)上进行了以下错误测试。在其他操作系统版本上测试,效果良好。

Java语言lang.RuntimeException:无法启动activity ComponentInfo{…ui.activities.navigationActivity.fragments.legalFragment.LegalDetailActivity}:android。看法充气异常:二进制XML文件行#24:充气类android时出错。网络工具包。网络视图

在第24行找不到有关xml布局的任何特别信息:

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

代码:

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)

    setTheme(R.style.AppTheme_NoActionBar)
    setContentView(R.layout.legal_detail_activity) // crash here. Nothing done to web view yet.

我正在使用库'androidx.appcompat: appcompat: 1.1.0'。

更新:全栈:

--------- beginning of crash
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.byte_artisan.mchat2, PID: 4198
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.byte_artisan.mchat2/com.byte_artisan.mchat2.ui.activities.navigationActivity.fragments.legalFragment.LegalDetailActivity}: android.view.InflateException: Binary XML file line #24: Error inflating class android.webkit.WebView
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
    at android.app.ActivityThread.access$800(ActivityThread.java:144)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:135)
    at android.app.ActivityThread.main(ActivityThread.java:5221)
    at java.lang.reflect.Method.invoke(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:372)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
 Caused by: android.view.InflateException: Binary XML file line #23: Error inflating class android.webkit.WebView
    at android.view.LayoutInflater.createView(LayoutInflater.java:633)
    at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55)
    at android.view.LayoutInflater.onCreateView(LayoutInflater.java:682)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
    at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:555)
    at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:161)
    at com.byte_artisan.mchat2.ui.activities.navigationActivity.fragments.legalFragment.LegalDetailActivity.onCreate(LegalDetailActivity.kt:18)
    at android.app.Activity.performCreate(Activity.java:5937)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360) 
    at android.app.ActivityThread.access$800(ActivityThread.java:144) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:135) 
    at android.app.ActivityThread.main(ActivityThread.java:5221) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:372) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) 
 Caused by: java.lang.reflect.InvocationTargetException
    at java.lang.reflect.Constructor.newInstance(Native Method)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
    at android.view.LayoutInflater.createView(LayoutInflater.java:607)
    at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55) 
    at android.view.LayoutInflater.onCreateView(LayoutInflater.java:682) 
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741) 
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:806) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:504) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:414) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:365) 
    at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:555) 
    at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:161) 
    at com.byte_artisan.mchat2.ui.activities.navigationActivity.fragments.legalFragment.LegalDetailActivity.onCreate(LegalDetailActivity.kt:18) 
    at android.app.Activity.performCreate(Activity.java:5937) 
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105) 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360) 
    at android.app.ActivityThread.access$800(ActivityThread.java:144) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:135) 
    at android.app.ActivityThread.main(ActivityThread.java:5221) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:372) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) 
 Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x2040002
    at android.content.res.Resources.getText(Resources.java:274)
    at android.content.res.Resources.getString(Resources.java:360)
    at com.android.org.chromium.content.browser.ContentViewCore.setContainerView(ContentViewCore.java:702)
    at com.android.org.chromium.content.browser.ContentViewCore.initialize(ContentViewCore.java:608)
    at com.android.org.chromium.android_webview.AwContents.createAndInitializeContentViewCore(AwContents.java:619)
    at com.android.org.chromium.android_webview.AwContents.setNewAwContents(AwContents.java:758)
    at com.android.org.chromium.android_webview.AwContents.<init>(AwContents.java:608)
    at com.android.org.chromium.android_webview.AwContents.<init>(AwContents.java:546)
    at com.android.webview.chromium.WebViewChromium.initForReal(WebViewChromium.java:312)
    at com.android.webview.chromium.WebViewChromium.access$100(WebViewChromium.java:97)
    at com.android.webview.chromium.WebViewChromium$1.run(WebViewChromium.java:264)
    at com.android.webview.chromium.WebViewChromium$WebViewChromiumRunQueue.drainQueue(WebViewChromium.java:124)
    at com.android.webview.chromium.WebViewChromium$WebViewChromiumRunQueue$1.run(WebViewChromium.java:111)
    at com.android.org.chromium.base.ThreadUtils.runOnUiThread(ThreadUtils.java:144)
    at com.android.webview.chromium.WebViewChromium$WebViewChromiumRunQueue.addTask(WebViewChromium.java:108)
    at com.android.webview.chro

共有3个答案

白星海
2023-03-14

我在2020年3月写的这个答案可能会在那之后改变。

在我的例子中,在build.gradle(应用程序级别)中,我改变了

implementation 'androidx.appcompat:appcompat:1.0.0'

implementation 'androidx.appcompat:appcompat:1.2.0-alpha02'

问题解决了。

我已经有了其他配置,但我没有更改它们:-

  1. 在Gradle项目级别
classpath 'com.android.tools.build:gradle:3.5.3'
distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
android {
    compileSdkVersion 29
    buildToolsVersion '29.0.2'
    ...
}

注意,该解决方案在android版本5的真实设备上进行了测试

翁钧
2023-03-14

最近我遇到了同样的问题,这里提到了一个问题,这个问题还没有解决。崩溃只发生在API 21上。

很少有解决方案提到降级androidx。appcompat:appcompat版本。这个答案帮助了我。此外,还有其他可能的解决方法,请选择适用于您的答案。

编辑:如果用户没有安装Google Play,API 22和23上也会发生崩溃。

编辑2:如问题跟踪器中所述,并升级androidx。appcompat:appcompat 1.2.0-alpha02版本在某些情况下提供了修复。请进行详细讨论,以找到合适的解决方法。

正如@MiguelSlv所提到的,添加这个maven存储库是一个临时修复,然而,上述所有解决方法都有副作用。由于该缺陷尚未修复,因此它不是一个干净的解决方案。

编辑3:截至2020年5月,有一个修复。

implementathtml" target="_blank">ion 'androidx.appcompat:appcompat:1.2.0-beta01'

以前的不工作版本:

implementation 'androidx.appcompat:appcompat:1.1.0'
章鸿光
2023-03-14

2020年4月24日,我解决了这个问题:

implementation 'androidx.appcompat:appcompat:1.2.0-beta01'

先前版本和非工作版本如下:

implementation 'androidx.appcompat:appcompat:1.1.0'
 类似资料:
  • 在我的应用程序中,我在自动测试期间遇到了上述错误。我试图在网络视图中显示一个来自URL的PDF,这会导致运行Android 5Lollipop的设备崩溃。完整的崩溃日志引用了WebView中找不到的字符串资源,到目前为止,我从这两个方面都没有获得太多信息。 编辑:我知道这是一个已知的问题,但到目前为止还没有解决方案修复崩溃,只是阻止了Android 5设备达到该状态并试图显示pdf。 崩溃日志 o

  • 我想在我的应用程序上使用floatingaction按钮,我阅读了以下内容:https://guides.codepath.com/android/Floating-Action-Buttons#google-s-official-support-library,但当我运行该活动时,出现以下错误: XML文件 格拉德尔

  • 本文向大家介绍超实用的android网络工具类,包括了超实用的android网络工具类的使用技巧和注意事项,需要的朋友参考一下 在实际开发中,往往一些工具类对我们的帮助是非常大的,借此,我在前人各位前辈的基础上,整理了一个网络的工具类,特此献上: 好的!希望对大家有帮助! 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 我正在尝试嵌入浮动操作按钮。下面是我的xml文件 问题是Im会收到以下错误消息, Android.View.InflateException:二进制XML文件行#300:在Android.View.LayoutInflater.CreateView(LayoutInflater.CreateViewFromTag(LayoutInflater.java:702)在Android.View.Layo