首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XWalkView不加载下载的文件/本地文件,并返回断言错误

XWalkView不加载下载的文件/本地文件,并返回断言错误
EN

Stack Overflow用户
提问于 2021-02-01 01:28:36
回答 1查看 70关注 0票数 0

我正在使用它在我的应用程序中实现crosswalk webview

代码语言:javascript
复制
 implementation 'org.xwalk:xwalk_core_library:23.53.589.4'

我像这样设置XWalkView

代码语言:javascript
复制
  private XWalkView xWalkWebView;
....
  xWalkWebView=(XWalkView)findViewById(R.id.xwalkWebView);

当我像这样加载一个外部HTML文件时,它加载得很好

代码语言:javascript
复制
 xWalkWebView.load("website.com/htmlfile.html",(String) null);

但是当我尝试加载一个本地文件时,它返回一个错误

代码语言:javascript
复制
 xWalkWebView.load("file:///" + Environment.getExternalStorageDirectory().getAbsolutePath() + "/Download/File.html",(String) null);

CrossWalk活动崩溃,并显示AssertionError警告,在某些情况下还会显示NullPointerException

我曾尝试使用XWalkView缓存将数据存储在其实例中

代码语言:javascript
复制
 xWalkWebView.clearCache(true);
 xWalkWebView.getSettings().setCacheMode(XWalkSettings.LOAD_CACHE_ELSE_NETWORK);
 xWalkWebView.reload(2);

它不起作用,我还尝试了loadUrlloadDataloadDataWithBaseURL,所有这些都不能加载local file

我尝试了很多方法,比如将函数分离,将XWalkView创建到一个单独的类中,以避免使用NullPointerException和其他许多事情,但都没有成功,我想知道是否有其他函数可以使用XWalkView加载本地文件

如有任何帮助,将不胜感激,谢谢!

编辑:当活动崩溃时,我得到的警告是:

代码语言:javascript
复制
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)
EN

回答 1

Stack Overflow用户

发布于 2021-06-19 15:11:56

我也有同样的问题。通过修改Gradle版本解决了这个问题。我认为Gradle的最高版本(目前是4.1.2)与XWalkView不兼容。当我将Gradle版本改为4.0.0时,它工作得很好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65982160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档