2017-02-18 71 views
6

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

首先库名称与我的预期不同。默认webview.apk的库名称为libwebviewchromium.so,但由铬(SystemWebView.apk)构建的APK包含库文件libwebviewchromium.cr.so。我想问问这是否会导致问题,如果其他人也看到了这一点。

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

$ adb uninstall com.android.webview  
[DELETE_FAILED_INTERNAL_ERROR] 

我想问问是否有人知道如何解决这个问题。我看到一个相关的问题,并想问问是否有其他方法可以做这个answer的建议。

+0

是否有可能从铬webview子文件夹中构建最新的webview并嵌入到我自己的应用程序中? – mko

+0

我已经建立了铬源的SystemWebView.apk,并用新的替换了系统中现有的apk。然后,应用中使用的WebView将使用新apk中的代码。根据我的理解,应用程序中使用的Webview依赖于SystemWebView.apk中的java和本机代码。 – Jake

回答

4

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

我做了以下步骤进行SystemWebView.apk工作(注:webview.apk是我建立一个系统的应用/system/app下,下面的步骤用来安装&测试SystemWebView.apk作为第三方应用程序)

(看看第6步先采取备份的2个文件)

  1. 首先我跟着链接answer亚行拉&编辑packages.xmlpackages.list文件(我没有推日EM还)
  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 
  • ADB安装SystemWebView.apk

  • 我也一直保持一个的备份libwebviewchromium64.relrolibwebviewchromium32.relro文件来自/data/misc/shared_relro/。安装完成后,我注意到这些文件由于某种原因被擦除,所以我再次复制它们(先复制到SD卡中,然后移动到shared_relro文件夹中)。

  • 亚行shell启动

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

    0

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

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

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

    0

    你必须建立SystemWebView.apk与 忍者-C输出/发行system_webview_apk

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

    亚行卸载,因为这是一个系统的应用com.android.webview

    失败,您可以直接更换webview.apk在 /系统/应用/ web视图/目录,在此之后请停止& &开始 为此,您需要root权限。

    相关问题