首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oreo迁移后Android - Xwalk崩溃

Oreo迁移后Android - Xwalk崩溃
EN

Stack Overflow用户
提问于 2018-01-17 06:07:14
回答 1查看 585关注 0票数 0

我想对一个以Android SDK 22 (5.1)为目标的应用程序做一些修改。

我在Android 3中加载了这个项目,得到了升级消息。当然,这样做会使整个事情爆发,因为新的Gradle处理依赖的方式变得非常挑剔。我决定全力以赴完成整个迁移过程。总有一天会这么做的。

应用程序使用XWalkView (在类中扩展),而不是本地Webview,因为我们希望运行一些WebGL。Xwalk正在被嵌入,而不是共享。

仅仅通过将Gradle文件更新到最新的Libs,基本上将Android支持更改为最新和目标SDK,就会使应用程序在安卓7+设备(在emu上测试过)启动时崩溃(直接崩溃消息)。应用程序以前加载正常。Logcat如下:

在应用程序代码中,崩溃似乎起源于以下一行:XWalkPreferences.setValue(XWalkPreferences.REMOTE_DEBUGGING, true);,它在类中扩展Application,这反过来只包含所使用的工具的调试/发布配置。删除上述行允许应用程序正常工作,直到它实际尝试加载XWalkView为止。

该应用程序在Android 4.4 ( app的19 min SDK )、5.0 (21)和6.0 (23)上运行正常。

我一直在互联网上寻找一个可能的解决方案,但还没有找到有帮助的东西。我知道人行横道是不可取的,很可能应该被取代,但是WebGL支持在安卓系统中并不是固定的,我不认为当前的图形在这个时候会发生变化。

如果有任何其他信息,可能会有帮助,让我知道,我会提供它。

希望有人能给我一些启示。提前谢谢。

编辑:

在玩了几次之后,我发现问题出在库文件上。通过下载crosswalk.aar,我发现它有两个版本:

  • xwalk_core_library-23.53.589.4-arm.aar
  • xwalk_core_library-23.53.589.4-arm64.aar

我删除了maven版本并手动包含了这些文件。当我使用arm64位时,我实际上可以在Android7平台上使用这个应用程序,没有任何问题。但是,在其他版本中,我也会遇到同样的xwalk崩溃。如果是arm图书馆的话,事情就会回到以前的样子。

他们在一起是行不通的。生成时会得到Duplicate zip file错误。

因此,更新的问题是:是否有一种方法可以告诉gradle每个体系结构使用哪个库文件?我一直在四处张望,但找不到东西。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-25 02:53:35

我设法解决了这个问题。这是与库中包含的JNIs的兼容性问题。

maven加载的库仅包括armeabi-v7ax86 ".so“文件。

我所做的是从arm64手动下载库的通用版本和这里版本,解压缩它们,将arm64-v8a jni文件夹内容移到另一边,然后使用jar cvf [yourLibName].aar -C [folderName]/ . (不要忘记末尾的点)命令重新打包aar。

目前看来一切都很顺利。希望奥利奥也会没事,一旦我设法在一个设备上进行测试。

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

https://stackoverflow.com/questions/48294582

复制
相关文章

相似问题

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