单击 Web 视图中的超链接时,应用程序崩溃。我已经调整了assets文件夹中的所有html文件

2024-01-01

我正在尝试制作一个打开本地 html 页面的应用程序,该页面具有链接到其他 2 个页面的超链接。所有这些 html 文件都放置在 asset 文件夹中。现在,当我触摸第一个 html 文件的超链接时,应用程序崩溃而不是打开另一个 html 文件。

package com.example.rishabh.webviewdemo;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.WebView;

public class MainActivity extends AppCompatActivity {
    WebView web;

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

        web= (WebView) findViewById(R.id.webview);
        web.loadUrl("file:///android_asset/1.html");
    }
}

这是日志

W/System.err: android.os.FileUriExposedException:file:///android_asset/2.html exposed beyond app through Intent.getData()
W/System.err:     at android.os.StrictMode.onFileUriExposed(StrictMode.java:1799)
W/System.err:     at android.net.Uri.checkFileUriExposed(Uri.java:2346)
W/System.err:     at android.content.Intent.prepareToLeaveProcess(Intent.java:8965)
W/System.err:     at android.content.Intent.prepareToLeaveProcess(Intent.java:8926)
W/System.err:     at android.app.Instrumentation.execStartActivity(Instrumentation.java:1517)
W/System.err:     at android.app.Activity.startActivityForResult(Activity.java:4225)
W/System.err:     at android.support.v4.app.BaseFragmentActivityJB.startActivityForResult(BaseFragmentActivityJB.java:48)
W/System.err:     at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:77)
W/System.err:     at android.app.Activity.startActivityForResult(Activity.java:4183)
W/System.err:     at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:859)
W/System.err:     at android.app.Activity.startActivity(Activity.java:4522)
W/System.err:     at android.app.Activity.startActivity(Activity.java:4490)
W/System.err:     at android.content.ContextWrapper.startActivity(ContextWrapper.java:356)
W/System.err:     at org.chromium.android_webview.ResourcesContextWrapperFactory$WebViewContextWrapper.startActivity(ResourcesContextWrapperFactory.java:121)
W/System.err:     at org.chromium.android_webview.AwContentsClient.sendBrowsingIntent(AwContentsClient.java:203)
W/System.err:     at org.chromium.android_webview.AwContentsClient.shouldIgnoreNavigation(AwContentsClient.java:170)
W/System.err:     at org.chromium.android_webview.AwContentsClientBridge.shouldOverrideUrlLoading(AwContentsClientBridge.java:256)
W/System.err:     at org.chromium.base.SystemMessageHandler.nativeDoRunLoopOnce(Native Method)
W/System.err:     at org.chromium.base.SystemMessageHandler.handleMessage(SystemMessageHandler.java:39)
W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:102)
W/System.err:     at android.os.Looper.loop(Looper.java:154)
W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:6119)
W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
W/System.err:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
 A/chromium: [FATAL:jni_android.cc(236)] Please include Java exception stack in crash report
W/google-breakpad: ### ### ### ### ### ### ### ### ### ### ### ### ###
W/google-breakpad: Chrome build fingerprint:
W/google-breakpad: 1.0
W/google-breakpad: 1
W/google-breakpad: ### ### ### ### ### ### ### ### ### ### ### ### ###
    A/libc: Fatal signal 6 (SIGABRT), code -6 in tid 4203 (abh.webviewdemo)

    [ 11-13 22:33:57.340  1186: 1186 W/         ]
    debuggerd: handling request: pid=4203 uid=10073 gid=10073 tid=4203
Application terminated.

正如 @CommonsWare 所建议的,似乎只需使用以下方法即可解决 N/25 设备尝试加载基于资产的链接 html 文件的问题。 在运行 Nougat 的模拟器上测试:

    web.setWebViewClient(new WebViewClient()
    {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url)
        {
            Log.i("WebView", "Attempting to load URL: " + url);

            view.loadUrl(url);
            return true;
        }
    });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

单击 Web 视图中的超链接时,应用程序崩溃。我已经调整了assets文件夹中的所有html文件 的相关文章

  • 使用 Eclipse 创建新的 android 项目后,Eclipse 中的 SRC 文件夹为空(未创建 MainActivity 类)

    使用 Eclipse 创建新的 android 项目后 Eclipse 中的 SRC 文件夹为空 未创建 MainActivity 类 我使用 Eclipse 创建了一个新的 android 项目 但我在项目资源管理器中看到 SRC 文件夹
  • 是否可以以编程方式更改操作栏选项卡指示器

    如何以编程方式更改操作栏的选定选项卡指示器 我读过关于选项卡样式 http developer android com guide topics ui actionbar html Style和 Tab setCustomView 方法 但
  • 从主题获取 EditText 的“默认”颜色值

    我有一个Activity其中包含一个EditText关于 3 1 根据用户输入 我更改 EditText 中文本的颜色 红色表示错误 然后在文本正常时将其重置为黑色 其中一个问题涉及改变活动的整体主题 例如 将其从浅色主题更改为常规深色主题
  • Android spinner 将多列(连接)Sqlite 数据库加载到表中

    我正在学习如何创建一个从 SQLite 加载下拉列表的微调器 我有一个由旋转器和表格组成的用户界面 如果用户单击微调器 表的内容将根据微调器上选定的 ID 根据数据库加载 如果未选择名称 它将加载表中的所有内容 但是我找不到如何根据微调器上
  • 以编程方式设置 windowlightstatusbar 属性

    如您所知 我们可以设置windowLightStatusBar通过以下代码从 xml 中获取
  • MissingDimensionStrategy 无处不在 - 有没有更好的方法?

    我有一个图书馆项目 让我们称之为lib1有定制的flavorDimensions指定的 更准确地说有buld尺寸与实际口味full and production 该库被另一个库项目使用 lib2 没有自定义flavorDimensions指
  • Android 矩形有两种不同的颜色

    如何通过使用两种不同颜色和阴影来创建矩形形状 就像上图一样 Please create a drawable file and put the below code in it
  • 如何让TalkBack自动读取TextView错误信息?

    我目前正在使我的应用程序可访问 但我的 EditTexts 遇到问题 在每个 EditText 中 用户的输入都会在某个时刻 例如按下按钮后 进行验证 如果输入无效 我会使用以下命令显示错误editText setError message
  • 如何将弹出菜单项的方向从右向左更改?

    我知道这个问题被问了很多次 我使用了很多解决方案 但它对我不起作用 我想改变我的方向Menu to rtl用一个Popup但它不起作用 my menu menu menu
  • 在 Android Studio 中调试服务的正确方法?

    在 Android Studio 中调试服务有正确的方法吗 或者 Android Studio 无法做到这一点 当我尝试调试时 它只会断开套接字 与目标虚拟机断开连接 地址 localhost 8600 传输 socket 希望你能在这里帮
  • 将 MapView 限制为屏幕的一半

    我试图让地图仅填充屏幕的上半部分 并在下半部分填充一些其他布局 现在我知道使用权重与表格布局相结合应该可以实现这一点 但是同一段 XML 代码可以完美地与 say 按钮配合使用 但不能与地图配合使用 截图在这里 https i stack
  • Android studio 3.0不生成签名的apk

    将 android studio 更新到版本 3 0 Windows 后 我无法生成签名的 APK 构建完成后 我收到消息 单击 查找 会将我带到 APP 文件夹 但找不到 APK 改变了什么 自Android Studio 3 0更新后
  • GoogleMap 本质上是可打包的吗?

    我对java和android很陌生 我遇到了一个基本问题 在这个给定的fragment 我可以添加GoogleMap对象为parcelable没有任何额外的pracelable类为 public class SecondFragment e
  • 如何使用Gson将JSONArray转换为List?

    在我的 Android 项目中 我试图将收到的 JSONArray 转换为列表 在 的帮助下这个答案 https stackoverflow com questions 8371274 how to parse json array in
  • 如何更改Android软键盘中任意键的按键背景

    我想让键盘上的一些键与其他键不同 例如下图中的shift 删除 空格键 根据google的参考文档 我们可以通过使用 来改变按键的背景android keybackground drawable xxx in input xml 但它改变了
  • 致命异常:OkHttp 调度程序

    我在 Android 应用程序中使用 OkHttp 库向天气 API 发出 Web 请求 我已经实现了我的代码 但在执行请求时遇到了致命异常 我也已经在我的清单中添加了互联网权限 MainActivity java private Curr
  • Android 中应用程序在后台运行时如何显示闪屏?

    我的应用程序有一个启动屏幕 无法避免它 因为这是出于品牌原因 我想屏蔽用户界面并在后台显示启动屏幕 就像银行应用程序那样 我应该覆盖 MainActivity 中视图的 onPause 和 onResume 吗 显现
  • 如何使用Android Studio录制Android屏幕?

    我已经在 Mac 上的 Applications 文件夹中安装了 Android Studio 我认为 sdk 位于包内容中 但现在我想使用 AShot jar 录制屏幕以获取应用程序的演示视频 我必须放弃SDK的路径 当我给出我认为正确的
  • 我可以像 justify 这样设置 Textview 的属性吗? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我想设置 TextView 属性 如右对齐 左对齐 对齐 不 你不能设置像重力这样的属性 但您仍然可以通过采用 web 视图而不是文本视图
  • 如何从 Google Fit API 获取步数?

    请原谅我的笨蛋 我对 Android 和 Google API 完全陌生 我有以下连接到 GoogleFit 的代码 我还有一个 API 密钥和 Oauth 我在哪里 如何使用 API 密钥和 Oauth 关于如何获取它们的指南有很多 但关

随机推荐