我正在尝试制作一个打开本地html页面的应用程序,该页面具有链接到其他2个页面的超链接.所有这些HTML文件都放置在资产文件夹中.现在,当我触摸第一个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 @R_404_4126@.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 reportW/Google-breakpad: ### ### ### ### ### ### ### ### ### ### ### ### ###W/Google-breakpad: Chrome build fingerprint:W/Google-breakpad: 1.0W/Google-breakpad: 1W/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=4203Application terminated.
解决方法:
正如@CommonsWare建议的那样,似乎仅使用以下方法即可解决N / 25设备尝试加载基于资产的链接HTML文件的问题.
在运行牛轧糖的模拟器上进行了测试:
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; } });
总结 以上是内存溢出为你收集整理的android-单击Webview中的超链接后,应用程序崩溃.我已经整理了Assets文件夹中的所有html文件全部内容,希望文章能够帮你解决android-单击Webview中的超链接后,应用程序崩溃.我已经整理了Assets文件夹中的所有html文件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)