【问题标题】:XWalkView doesn't load downloaded files / local files and returns Assertion ErrorXWalkView 不加载下载的文件/本地文件并返回 Assertion Error
【发布时间】:2021-05-05 00:10:24
【问题描述】:

我正在使用它来为我的应用实现人行横道 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);

没有用,我还尝试了loadUrlloadDataloadDataWithBaseURL,所有这些都无法加载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)

【问题讨论】:

    标签: crosswalk xwalkview


    【解决方案1】:

    我遇到了同样的问题。通过修改 Gradle 版本解决了这个问题。 我认为最高的 Gradle 版本(目前为 4.1.2)与 XWalkView 不兼容。当我将 Gradle 版本更改为 4.0.0 时,它运行良好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-25
      • 2017-11-19
      • 2014-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-02
      相关资源
      最近更新 更多