关于7.0去掉Chrome后,平台默认浏览器报错webview not installed的问题

132 篇文章 3 订阅
90 篇文章 3 订阅

##问题描述
最近有项目需要android 7.0中去掉chrome。
但是去掉chrome后发现平台默认的Browser浏览器老是报错

01-01 08:27:32.073  3880  3880 D AndroidRuntime: Shutting down VM
01-01 08:27:32.074  3880  3880 E AndroidRuntime: FATAL EXCEPTION: main
01-01 08:27:32.074  3880  3880 E AndroidRuntime: Process: com.android.browser, PID: 3880
01-01 08:27:32.074  3880  3880 E AndroidRuntime: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.browser/com.android.browser.BrowserActivity}: android.util.AndroidRuntimeException: android.webkit.WebViewFactory$MissingWebViewPackageException: Failed to load WebView provider: No WebView installed
01-01 08:27:32.074  3880  3880 E AndroidRuntime: 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2724)
01-01 08:27:32.074  3880  3880 E AndroidRuntime: 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2789)
01-01 08:27:32.074  3880  3880 E AndroidRuntime: 	at android.app.ActivityThread.-wrap12(ActivityThread.java)
01-01 08:27:32.074  3880  3880 E AndroidRuntime: 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1527)
01-01 08:27:32.074  3880  3880 E AndroidRuntime: 	at android.os.Handler.dispatchMessage(Handler.java:110)
01-01 08:27:32.074  3880  3880 E AndroidRuntime: 	at android.os.Looper.loop(Looper.java:203)
01-01 08:27:32.074  3880  3880 E AndroidRuntime: 	at android.app.ActivityThread.main(ActivityThread.java:6251)
01-01 08:27:32.074  3880  3880 E AndroidRuntime: 	at java.lang.reflect.Method.invoke(Native Method)
01-01 08:27:32.074  3880  3880 E AndroidRuntime: 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1063)
01-01 08:27:32.074  3880  3880 E AndroidRuntime: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:924)
01-01 08:27:32.074  3880  3880 E AndroidRuntime: Caused by: android.util.AndroidRuntimeException: android.webkit.WebViewFactory$MissingWebViewPackageException: Failed to load WebView provider: No WebView installed
01-01 08:27:32.074  3880  3880 E AndroidRuntime: 	at android.webkit.WebViewFactory.getProviderClass(WebViewFactory.java:371)
01-01 08:27:32.074  3880  3880 E AndroidRuntime: 	at android.webkit.WebViewFactory.getProvider(WebViewFactory.java:194)
01-01 08:27:32.074  3880  3880 E AndroidRuntime: 	at android.webkit.CookieManager.getInstance(CookieManager.java:39)
01-01 08:27:32.074  3880  3880 E AndroidRuntime: 	at com.android.browser.BrowserSettings.syncSharedSettings(BrowserSettings.java:410)
01-01 08:27:32.074  3880  3880 E AndroidRuntime: 	at com.android.browser.BrowserSettings.setController(BrowserSettings.java:171)
01-01 08:27:32.074  3880  3880 E AndroidRuntime: 	at com.android.browser.Controller.<init>(Controller.java:331)
01-01 08:27:32.074  3880  3880 E AndroidRuntime: 	at com.android.browser.BrowserActivity.createController(BrowserActivity.java:145)
01-01 08:27:32.074  3880  3880 E AndroidRuntime: 	at com.android.browser.BrowserActivity.onCreate(BrowserActivity.java:130)
01-01 08:27:32.074  3880  3880 E AndroidRuntime: 	at android.app.Activity.performCreate(Activity.java:6666)
01-01 08:27:32.074  3880  3880 E AndroidRuntime: 	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
01-01 08:27:32.074  3880  3880 E AndroidRuntime: 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2677)
01-01 08:27:32.074  3880  3880 E AndroidRuntime: 	... 9 more
01-01 08:27:32.074  3880  3880 E AndroidRuntime: Caused by: android.webkit.WebViewFactory$MissingWebViewPackageException: Failed to load WebView provider: No WebView installed
01-01 08:27:32.074  3880  3880 E AndroidRuntime: 	at android.webkit.WebViewFactory.getWebViewContextAndSetProvider(WebViewFactory.java:270)
01-01 08:27:32.074  3880  3880 E AndroidRuntime: 	at android.webkit.WebViewFactory.getProviderClass(WebViewFactory.java:330)
01-01 08:27:32.074  3880  3880 E AndroidRuntime: 	... 19 more
01-01 08:27:32.076   966  1357 W ActivityManager:   Force finishing activity com.android.browser/.BrowserActivity

##问题解决
后来发现时webviewGoogle 编译Android.mk的问题。

###############################################################################
# WebView Chromium
LOCAL_PATH := $(call my-dir)

my_archs := arm arm64 x86 x86_64
my_src_arch := $(call get-prebuilt-src-arch, $(my_archs))

# make sure to include correct WebView binary: full or stub
_list_of_old_api_levels := 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
ifneq (,$(filter $(PLATFORM_SDK_VERSION),$(_list_of_old_api_levels)))
  # WebView apks in this folder are for N or later platforms only, stop building
  $(error PLATFORM_SDK_VERSION must be equal to or greater than 24)
endif

_ro_property_string := $(filter ro.product.first_api_level=%,$(ADDITIONAL_BUILD_PROPERTIES))

ifdef _ro_property_string
  _first_api_level := $(word 2,$(subst =,$(space),$(_ro_property_string)))
else
  # if the first_api_level property is undefined, this is new launch
  _first_api_level := $(PLATFORM_SDK_VERSION)
endif

# preload WebView full apk by default
_gms_preload_webview_type := full

ifneq ($(filter Chrome,$(ALL_MODULES)),)
  # Chrome browser is included in this build
  ifeq (,$(filter $(_first_api_level),$(_list_of_old_api_levels)))
    # first_api_level is equal to or greater than 24
    # SUN:jicong.wang add for remove chrome start 
    ifeq ($(strip $(SUN_REMOVE_CHROME)),true)
        _gms_preload_webview_type := full
    else
        _gms_preload_webview_type := stub
    endif
    # SUN:jicong.wang add for remove chrome end
  endif
endif

include $(CLEAR_VARS)
LOCAL_MODULE := WebViewGoogle
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_TAGS := optional
LOCAL_BUILT_MODULE_STEM := package.apk
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
#LOCAL_PRIVILEGED_MODULE :=
LOCAL_CERTIFICATE := PRESIGNED
LOCAL_OVERRIDES_PACKAGES := webview
$(info preloading WebView $(_gms_preload_webview_type) apk.)
ifeq "$(_gms_preload_webview_type)" "full"
  LOCAL_SRC_FILES := $(LOCAL_MODULE)_$(my_src_arch).apk
else ifeq "$(_gms_preload_webview_type)" "stub"
  LOCAL_SRC_FILES := WebViewStub.apk
endif



LOCAL_MULTILIB := both
LOCAL_REQUIRED_MODULES := \
    libwebviewchromium_loader \
    libwebviewchromium_plat_support
include $(BUILD_PREBUILT)

我们添加一个

    # SUN:jicong.wang add for remove chrome start 
    ifeq ($(strip $(SUN_REMOVE_CHROME)),true)
        _gms_preload_webview_type := full
    else
        _gms_preload_webview_type := stub
    endif
    # SUN:jicong.wang add for remove chrome end

让webviewGoogle 编译时用full的apk就可以了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值