关于7.0去掉Chrome后,平台默认浏览器报错webview not installed的问题
2017-10-23 14:05
711 查看
问题描述
最近有项目需要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就可以了。
相关文章推荐
- 关于用WebView或手机浏览器打开连接问题
- 关于用WebView或手机浏览器打开连接问题
- 关于用WebView或手机浏览器打开连接问题
- 关于用WebView或手机浏览器打开连接问题
- 关于用WebView或手机浏览器打开连接问题
- 安卓开发_关于WebView使用链接时调用浏览器显示的问题
- 关于在普通布局中添加,webView跳转浏览器的问题
- 关于一个URL,在浏览器中能打开,但是在webview中打不开的问题
- 关于用WebView或手机浏览器打开连接问题
- 让android webView使用系统默认浏览器内核直接解析,不弹出选择浏览器选项
- 关于webView的简单浏览器
- android 4.0中关于webview加载flash并使flash全屏的问题(附demo)
- android关于EditText取消默认焦点及触摸其它地方去掉光标隐藏键盘问题
- web去掉浏览器自带默认样式
- 关于WebView的addJavascriptInterface方法的安卓版本问题
- 关于android webview js桥(addJavascriptInterface) 失效的问题
- 关于利用WebView访问Internet问题
- 关于android 端,人人网以及新浪网 webview 页面缓存问题
- 关于WebView不同版本系统不兼容的问题
- Chrome 浏览器跨域和安全访问问题 使用 chrome的命令行标记:disable-web-security 参数联调线上数据