9

我正在尝试按照说明从铬基构建 webview apk。我正在运行 Android-7.0 构建。我完成了 Chromium 的编译过程并生成了 APK。我有两个与 APK 生成后步骤相关的问题。

首先,库名称与我的预期不同。默认webview.apk有一个库名称libwebviewchromium.so,但我从 chromium( SystemWebView.apk) 构建的 APK 包含该库libwebviewchromium.cr.so。我想问这是否会导致问题,以及其他人是否也看到了这一点。

其次,我无法com.android.webview从设备上卸载该应用程序。说明要求卸载此应用并删除其文件夹,然后才能安装新的 APK。我得到错误:

$ adb uninstall com.android.webview     
[DELETE_FAILED_INTERNAL_ERROR]

我想问是否有人知道如何解决这个问题。我看到了一个相关的问题,并想问是否有任何其他方法可以按照这个答案的建议进行操作。

4

3 回答 3

5

以下答案与我的问题的第二部分有关。

我做了以下步骤来完成这项SystemWebView.apk工作(注意:这webview.apk是我构建下的系统应用程序/system/app;以下步骤用于安装和测试SystemWebView.apk作为第三方应用程序)

(先看第 6 步,备份 2 个文件)

  1. 首先,我按照adb pull & edit the and files 的链接答案(我还没有推送它们)packages.xmlpackages.list
  2. adb 外壳停止
  3. 我推送这两个文件
  4. 然后我删除了以下文件夹(基本上是任何痕迹com.android.webview):
 /system/app/webview
 /data/data/com.android.webview
 /data/user/0/com.android.webview
 /data/misc/profiles/cur/0/com.android.webview
 /data/misc/profiles/ref/com.android.webview
 /data/user_de/0/com.android.webview
  1. adb install SystemWebView.apk

  2. 我还保留libwebviewchromium64.relrolibwebviewchromium32.relro来自/data/misc/shared_relro/. 安装后,我注意到这些文件由于某种原因被删除了,所以我再次复制它们(首先复制到 sdcard 然后移动到shared_relro文件夹中)。

  3. adb 外壳启动

之后,我测试了一个包含 , 的简单应用程序WebView,并且可以看到加载的网页。

于 2017-02-19T01:43:48.557 回答
0

您必须使用 ninja -C out/Release system_webview_apk 构建 SystemWebView.apk

有关更多详细信息,请查看此页面。 https://chromium.googlesource.com/chromium/src/+/master/docs/android_build_instructions.mdhttps://www.chromium.org/developers/how-tos/build-instructions-android-webview

adb 卸载 com.android.webview

失败,因为这是一个系统应用程序,您可以直接替换 /system/app/webview/ 目录中的 webview.apk,在此之后执行 stop && start 为此您需要 root 权限。

于 2017-03-24T14:03:07.340 回答
-1

原生 Web 视图在性能和缓存方面有很多限制。
我宁愿建议你CustomTabsClient,Chrome 浏览器支持的 web 视图。
您可以通过在项目中添加以下依赖项来获得它。

dependencies {
...
compile 'com.android.support:customtabs:23.3.0'
}

更多详情请访问。
https://developer.chrome.com/multidevice/android/customtabs

于 2017-03-16T11:36:25.333 回答