我正在使用它来为我的应用程序实现人行横道 webview
implementation 'org.xwalk:xwalk_core_library:23.53.589.4'
我正在像这样设置 XWalkView
private XWalkView xWalkWebView;
....
xWalkWebView=(XWalkView)findViewById(R.id.xwalkWebView);
当我像这样加载一个外部 HTML 文件时,它加载得很好
xWalkWebView.load("website.com/htmlfile.html",(String) null);
但是当我尝试加载本地文件时,它会返回错误
xWalkWebView.load("file:///" + Environment.getExternalStorageDirectory().getAbsolutePath() + "/Download/File.html",(String) null);
CrossWalk Activity 崩溃并出现 AssertionError 警告,在某些情况下还会出现NullPointerException
我尝试使用 XWalkView 缓存将数据存储在其实例中
xWalkWebView.clearCache(true);
xWalkWebView.getSettings().setCacheMode(XWalkSettings.LOAD_CACHE_ELSE_NETWORK);
xWalkWebView.reload(2);
它没有用,我也试过了loadUrl
,所有这些都没有尝试加载一个loadData
loadDataWithBaseURL
local file
我已经尝试了很多东西,比如将创建函数的函数分离XWalkView
到一个单独的类以避免NullPointerException
和许多其他事情,但没有任何效果,我想知道是否还有另一个函数可以使用加载本地文件XWalkView
任何帮助将不胜感激,谢谢!
编辑:活动崩溃时我收到的警告是:
W/System.err: java.lang.AssertionError
at org.xwalk.core.internal.AndroidProtocolHandler.getAssetPath(AndroidProtocolHandler.java:82)
at org.xwalk.core.internal.XWalkMediaPlayerResourceLoadingFilter.shouldOverrideResourceLoading(XWalkMediaPlayerResourceLoadingFilter.java:38)
at org.chromium.media.MediaPlayerBridge.setDataSource(MediaPlayerBridge.java:205)
at org.chromium.base.SystemMessageHandler.nativeDoRunLoopOnce(Native Method)
at org.chromium.base.SystemMessageHandler.handleMessage(SystemMessageHandler.java:39)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4745)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)