I have built my own android os for hikey and I have added a new app view package into packages folder and I have rebuilt my system it compile all successfully.
When I have flashed my card I had an exception "E WebViewFactory: Chromium WebView package does not exist
" when I have launched my webview application:
01-14 17:53:55.994 2380 3270 I ActivityManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 pkg=com.testapps.TestWebviewApp1 cmp=com.testapps.TestWebviewApp1/.MainActivity} from uid 10051
01-14 17:53:54.604 2148 2197 I chatty : uid=1054(vehicle_network) android.hardwar identical 6 lines
01-14 17:53:55.604 2148 2197 E automotive.vehicle@2.0-impl: Discarding value for prop 0x11600703 because it contains data that is not consistent with this pool. Expected type: 6291456, vector size: 0
01-14 17:53:56.009 2146 3660 W StreamHAL: Error from HAL stream in function get_presentation_position: Operation not permitted
01-14 17:53:56.009 2146 3660 W StreamHAL: Error from HAL stream in function get_presentation_position: Operation not permitted
01-14 17:53:56.015 3959 3959 I Zygote : seccomp disabled by setenforce 0
01-14 17:53:56.015 2380 3270 I ActivityManager: Start proc 3959:com.testapps.TestWebviewApp1/u0a2 for activity com.testapps.TestWebviewApp1/.MainActivity
01-14 17:53:57.235 2380 3270 W WebViewUpdater: creating relro file timed out
01-14 17:53:57.238 3959 3959 E WebViewFactory: Chromium WebView package does not exist
01-14 17:53:57.238 3959 3959 E WebViewFactory: android.webkit.WebViewFactory$MissingWebViewPackageException: Failed to load WebView provider: No WebView installed
01-14 17:53:57.238 3959 3959 E WebViewFactory: at android.webkit.WebViewFactory.getWebViewContextAndSetProvider(WebViewFactory.java:320)
01-14 17:53:57.238 3959 3959 E WebViewFactory: at android.webkit.WebViewFactory.getProviderClass(WebViewFactory.java:383)
01-14 17:53:57.238 3959 3959 E WebViewFactory: at android.webkit.WebViewFactory.getProvider(WebViewFactory.java:194)
01-14 17:53:57.238 3959 3959 E WebViewFactory: at android.webkit.WebView.getFactory(WebView.java:2531)
01-14 17:53:57.238 3959 3959 E WebViewFactory: at android.webkit.WebView.ensureProviderCreated(WebView.java:2526)
01-14 17:53:57.238 3959 3959 E WebViewFactory: at android.webkit.WebView.setOverScrollMode(WebView.java:2591)
01-14 17:53:57.238 3959 3959 E WebViewFactory: at android.view.View.<init>(View.java:4574)
01-14 17:53:57.238 3959 3959 E WebViewFactory: at android.view.View.<init>(View.java:4706)
01-14 17:53:57.238 3959 3959 E WebViewFactory: at android.view.ViewGroup.<init>(ViewGroup.java:597)
01-14 17:53:57.238 3959 3959 E WebViewFactory: at android.widget.AbsoluteLayout.<init>(AbsoluteLayout.java:55)
01-14 17:53:57.238 3959 3959 E WebViewFactory: at android.webkit.WebView.<init>(WebView.java:643)
01-14 17:53:57.238 3959 3959 E WebViewFactory: at android.webkit.WebView.<init>(WebView.java:588)
01-14 17:53:57.238 3959 3959 E WebViewFactory: at android.webkit.WebView.<init>(WebView.java:571)
01-14 17:53:57.238 3959 3959 E WebViewFactory: at android.webkit.WebView.<init>(WebView.java:558)
01-14 17:53:57.238 3959 3959 E WebViewFactory: at java.lang.reflect.Constructor.newInstance0(Native Method)
01-14 17:53:57.238 3959 3959 E WebViewFactory: at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
01-14 17:53:57.238 3959 3959 E WebViewFactory: at android.view.LayoutInflater.createView(LayoutInflater.java:647)
01-14 17:53:57.238 3959 3959 E WebViewFactory: at com.android.internal.policy.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:58)
01-14 17:53:57.238 3959 3959 E WebViewFactory: at android.view.LayoutInflater.onCreateView(LayoutInflater.java:720)
01-14 17:53:57.238 3959 3959 E WebViewFactory: at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:788)
01-14 17:53:57.238 3959 3959 E WebViewFactory: at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730)
01-14 17:53:57.238 3959 3959 E WebViewFactory: at android.view.LayoutInflater.rInflate(LayoutInflater.java:863)
01-14 17:53:57.238 3959 3959 E WebViewFactory: at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
01-14 17:53:57.238 3959 3959 E WebViewFactory: at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
01-14 17:53:57.238 3959 3959 E WebViewFactory: at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
01-14 17:53:57.238 3959 3959 E WebViewFactory: at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
01-14 17:53:57.238 3959 3959 E WebViewFactory: at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:419)
01-14 17:53:57.238 3959 3959 E WebViewFactory: at android.app.Activity.setContentView(Activity.java:2685)
01-14 17:53:57.238 3959 3959 E WebViewFactory: at com.testapps.TestWebviewApp1.MainActivity.onCreate(MainActivity.java:16)
01-14 17:53:57.238 3959 3959 E WebViewFactory: at android.app.Activity.performCreate(Activity.java:7015)
01-14 17:53:57.238 3959 3959 E WebViewFactory: at android.app.Activity.performCreate(Activity.java:7006)
01-14 17:53:57.238 3959 3959 E WebViewFactory: at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1214)
01-14 17:53:57.238 3959 3959 E WebViewFactory: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2735)
01-14 17:53:57.238 3959 3959 E WebViewFactory: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2860)
01-14 17:53:57.238 3959 3959 E WebViewFactory: at android.app.ActivityThread.access$1300(ActivityThread.java:176)
01-14 17:53:57.238 3959 3959 E WebViewFactory: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1591)
01-14 17:53:57.238 3959 3959 E WebViewFactory: at android.os.Handler.dispatchMessage(Handler.java:106)
01-14 17:53:57.238 3959 3959 E WebViewFactory: at android.os.Looper.loop(Looper.java:164)
01-14 17:53:57.238 3959 3959 E WebViewFactory: at android.app.ActivityThread.main(ActivityThread.java:6518)
01-14 17:53:57.238 3959 3959 E WebViewFactory: at java.lang.reflect.Method.invoke(Native Method)
01-14 17:53:57.238 3959 3959 E WebViewFactory: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
01-14 17:53:57.238 3959 3959 E WebViewFactory: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:853)
01-14 17:53:57.239 3959 3959 D AndroidRuntime: Shutting down VM
01-14 17:53:57.240 3959 3959 E AndroidRuntime: FATAL EXCEPTION: main
01-14 17:53:57.240 3959 3959 E AndroidRuntime: Process: com.testapps.TestWebviewApp1, PID: 3959
01-14 17:53:57.240 3959 3959 E AndroidRuntime: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.testapps.TestWebviewApp1/com.testapps.TestWebviewApp1.MainActivity}: android.view.InflateException: Binary XML file line #8: Binary XML file line #8: Error inflating class android.webkit.WebView
01-14 17:53:57.240 3959 3959 E AndroidRuntime: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2784)
01-14 17:53:57.240 3959 3959 E AndroidRuntime: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2860)
01-14 17:53:57.240 3959 3959 E AndroidRuntime: at android.app.ActivityThread.access$1300(ActivityThread.java:176)
01-14 17:53:57.240 3959 3959 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1591)
01-14 17:53:57.240 3959 3959 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:106)
01-14 17:53:57.240 3959 3959 E AndroidRuntime: at android.os.Looper.loop(Looper.java:164)
01-14 17:53:57.240 3959 3959 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:6518)
01-14 17:53:57.240 3959 3959 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
01-14 17:53:57.240 3959 3959 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
01-14 17:53:57.240 3959 3959 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:853)
01-14 17:53:57.240 3959 3959 E AndroidRuntime: Caused by: android.view.InflateException: Binary XML file line #8: Binary XML file line #8: Error inflating class android.webkit.WebView
01-14 17:53:57.240 3959 3959 E AndroidRuntime: Caused by: android.view.InflateException: Binary XML file line #8: Error inflating class android.webkit.WebView
01-14 17:53:57.240 3959 3959 E AndroidRuntime: Caused by: java.lang.reflect.InvocationTargetException
01-14 17:53:57.240 3959 3959 E AndroidRuntime: at java.lang.reflect.Constructor.newInstance0(Native Method)
01-14 17:53:57.240 3959 3959 E AndroidRuntime: at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
01-14 17:53:57.240 3959 3959 E AndroidRuntime: at android.view.LayoutInflater.createView(LayoutInflater.java:647)
01-14 17:53:57.240 3959 3959 E AndroidRuntime: at com.android.internal.policy.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:58)
01-14 17:53:57.240 3959 3959 E AndroidRuntime: at android.view.LayoutInflater.onCreateView(LayoutInflater.java:720)
01-14 17:53:57.240 3959 3959 E AndroidRuntime: at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:788)
01-14 17:53:57.240 3959 3959 E AndroidRuntime: at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730)
01-14 17:53:57.240 3959 3959 E AndroidRuntime: at android.view.LayoutInflater.rInflate(LayoutInflater.java:863)
01-14 17:53:57.240 3959 3959 E AndroidRuntime: at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
01-14 17:53:57.240 3959 3959 E AndroidRuntime: at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
01-14 17:53:57.240 3959 3959 E AndroidRuntime: at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
01-14 17:53:57.240 3959 3959 E AndroidRuntime: at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
01-14 17:53:57.240 3959 3959 E AndroidRuntime: at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:419)
01-14 17:53:57.240 3959 3959 E AndroidRuntime: at android.app.Activity.setContentView(Activity.java:2685)
01-14 17:53:57.240 3959 3959 E AndroidRuntime: at com.testapps.TestWebviewApp1.MainActivity.onCreate(MainActivity.java:16)
01-14 17:53:57.240 3959 3959 E AndroidRuntime: at android.app.Activity.performCreate(Activity.java:7015)
01-14 17:53:57.240 3959 3959 E AndroidRuntime: at android.app.Activity.performCreate(Activity.java:7006)
01-14 17:53:57.240 3959 3959 E AndroidRuntime: at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1214)
01-14 17:53:57.240 3959 3959 E AndroidRuntime: at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2735)
01-14 17:53:57.240 3959 3959 E AndroidRuntime: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2860)
01-14 17:53:57.240 3959 3959 E AndroidRuntime: at android.app.ActivityThread.access$1300(ActivityThread.java:176)
01-14 17:53:57.240 3959 3959 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1591)
01-14 17:53:57.240 3959 3959 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:106)
01-14 17:53:57.240 3959 3959 E AndroidRuntime: at android.os.Looper.loop(Looper.java:164)
01-14 17:53:57.240 3959 3959 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:6518)
01-14 17:53:57.240 3959 3959 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
01-14 17:53:57.240 3959 3959 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
01-14 17:53:57.240 3959 3959 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:853)
01-14 17:53:57.240 3959 3959 E AndroidRuntime: Caused by: android.util.AndroidRuntimeException: android.webkit.WebViewFactory$MissingWebViewPackageException: Failed to load WebView provider: No WebView installed
01-14 17:53:57.240 3959 3959 E AndroidRuntime: at android.webkit.WebViewFactory.getProviderClass(WebViewFactory.java:423)
01-14 17:53:57.240 3959 3959 E AndroidRuntime: at android.webkit.WebViewFactory.getProvider(WebViewFactory.java:194)
01-14 17:53:57.240 3959 3959 E AndroidRuntime: at android.webkit.WebView.getFactory(WebView.java:2531)
01-14 17:53:57.240 3959 3959 E AndroidRuntime: at android.webkit.WebView.ensureProviderCreated(WebView.java:2526)
01-14 17:53:57.240 3959 3959 E AndroidRuntime: at android.webkit.WebView.setOverScrollMode(WebView.java:2591)
01-14 17:53:57.240 3959 3959 E AndroidRuntime: at android.view.View.<init>(View.java:4574)
01-14 17:53:57.240 3959 3959 E AndroidRuntime: at android.view.View.<init>(View.java:4706)
01-14 17:53:57.240 3959 3959 E AndroidRuntime: at android.view.ViewGroup.<init>(ViewGroup.java:597)
01-14 17:53:57.240 3959 3959 E AndroidRuntime: at android.widget.AbsoluteLayout.<init>(AbsoluteLayout.java:55)
01-14 17:53:57.240 3959 3959 E AndroidRuntime: at android.webkit.WebView.<init>(WebView.java:643)
01-14 17:53:57.240 3959 3959 E AndroidRuntime: at android.webkit.WebView.<init>(WebView.java:588)
01-14 17:53:57.240 3959 3959 E AndroidRuntime: at android.webkit.WebView.<init>(WebView.java:571)
01-14 17:53:57.240 3959 3959 E AndroidRuntime: at android.webkit.WebView.<init>(WebView.java:558)
01-14 17:53:57.240 3959 3959 E AndroidRuntime: ... 28 more
01-14 17:53:57.240 3959 3959 E AndroidRuntime: Caused by: android.webkit.WebViewFactory$MissingWebViewPackageException: Failed to load WebView provider: No WebView installed
01-14 17:53:57.240 3959 3959 E AndroidRuntime: at android.webkit.WebViewFactory.getWebViewContextAndSetProvider(WebViewFactory.java:320)
01-14 17:53:57.240 3959 3959 E AndroidRuntime: at android.webkit.WebViewFactory.getProviderClass(WebViewFactory.java:383)
01-14 17:53:57.240 3959 3959 E AndroidRuntime: ... 40 more
01-14 17:53:57.245 2380 3270 W ActivityManager: Force finishing activity com.testapps.TestWebviewApp1/.MainActivity
01-14 17:53:57.249 3959 3959 I Process : Sending signal. PID: 3959 SIG: 9
01-14 17:53:57.306 2380 3270 I ActivityManager: Process com.testapps.TestWebviewApp1 (pid 3959) has died: fore TOP
01-14 17:53:57.306 2380 2397 W libprocessgroup: kill(-3959, 9) failed: No such process
01-14 17:53:57.308 2141 2141 I Zygote : Process 3959 exited due to signal (9)
01-14 17:53:57.331 2380 3270 I WifiService: getWifiEnabledState uid=1000
01-14 17:53:57.350 2380 2397 W libprocessgroup: kill(-3959, 9) failed: No such process
01-14 17:53:57.350 2380 2397 I libprocessgroup: Successfully killed process cgroup uid 10002 pid 3959 in 43ms
01-14 17:53:57.365 3449 3509 D mali_winsys: EGLint new_window_surface(egl_winsys_display *, void *, EGLSurface, EGLConfig, egl_winsys_surface **, egl_color_buffer_format *, EGLBoolean) returns 0x3000
01-14 17:53:57.383 3449 3509 D vndksupport: Loading /vendor/lib64/hw/gralloc.hikey960.so from current namespace instead of sphal namespace.
01-14 17:53:57.430 2155 2296 D vndksupport: Loading /vendor/lib64/hw/gralloc.hikey960.so from current namespace instead of sphal namespace.
01-14 17:53:57.604 2148 2197 E automotive.vehicle@2.0-impl: Discarding value for prop 0x11600703 because it contains data that is not consistent with this pool. Expected type: 6291456, vector size: 0
01-14 17:54:00.074 2380 2629 E TaskPersister: File error accessing recents directory (directory doesn't exist?).
Why I have this exception ? did you have a solution?
NOTE: I have in the external
folder a chromium-webview
and when I check in file system of android I have found :
adb shell
hikey960:/ $ find . -name webview.apk 2> /dev/null
./system/app/webview/webview.apk
Content of Android.mk in external/chromium-webview:
#
# Copyright (C) 2014 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Install the prebuilt webview apk.
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := webview
LOCAL_MODULE_CLASS := APPS
LOCAL_MULTILIB := both
LOCAL_CERTIFICATE := $(DEFAULT_SYSTEM_DEV_CERTIFICATE)
LOCAL_REQUIRED_MODULES := \
libwebviewchromium_loader \
libwebviewchromium_plat_support
LOCAL_MODULE_TARGET_ARCH := arm arm64 x86 x86_64
my_src_arch := $(call get-prebuilt-src-arch,$(LOCAL_MODULE_TARGET_ARCH))
LOCAL_SRC_FILES := prebuilt/$(my_src_arch)/webview.apk
LOCAL_PREBUILT_JNI_LIBS_arm := @lib/armeabi-v7a/libwebviewchromium.so
LOCAL_PREBUILT_JNI_LIBS_arm64 := @lib/arm64-v8a/libwebviewchromium.so
LOCAL_PREBUILT_JNI_LIBS_x86 := @lib/x86/libwebviewchromium.so
LOCAL_PREBUILT_JNI_LIBS_x86_64 := @lib/x86_64/libwebviewchromium.so
include $(BUILD_PREBUILT)
I have fixed this issue by changing the configuration file config_webview_packages.xml
as following:
<!--
Copyright 2016 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!-- WebView providers in order of preference -->
<!--
Signature checks are ignored if the package is preinstalled or if this is a userdebug or eng
build. If no signature is provided, the package can provide a WebView implementation only on userdebug/eng builds or if it's preinstalled
-->
<webviewproviders>
<webviewprovider description="Chrome Stable" packageName="com.android.chrome" availableByDefault="true">
<!--
Ignore this package on user/release builds unless preinstalled.
-->
</webviewprovider>
<!-- The default WebView implementation -->
<webviewprovider description="Android WebView" packageName="com.android.webview" availableByDefault="true"> </webviewprovider>
</webviewproviders>