HTML视频控件无法在Codenameone应用程序中运行 [英] html video control is not working in codenameone app for android

查看:38
本文介绍了HTML视频控件无法在Codenameone应用程序中运行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个codenameone应用程序,该应用程序调用了用html5开发的安全网站。它使用html视频控件拍摄快照。该网站在chrome中完美运行。但是,当我从安装在Android设备上的codenameone应用程序调用它时,视频控件未显示在页面上。

I've a codenameone app that calls a secure website developed in html5. It uses html video control to take a snapshot. The site works in chrome perfectly. But when I call it from codenameone app, installed on Android device, the video control does not appear on the page. The required camera permissions are set in the App.

日志如下:

日志... .--------- main的开头

LOGS....--------- beginning of main

09-07 15:43:39.586 23032 23085 I Adreno  : QUALCOMM build                   : 84c9b58, I4fcced3c6d
09-07 15:43:39.586 23032 23085 I Adreno  : Build Date                       : 01/17/18
09-07 15:43:39.586 23032 23085 I Adreno  : OpenGL ES Shader Compiler Version: XE031.09.00.04
09-07 15:43:39.586 23032 23085 I Adreno  : Local Branch                     : 
09-07 15:43:39.586 23032 23085 I Adreno  : Remote Branch                    : refs/tags/AU_LINUX_ANDROID_LA.UM.5.5.R1.07.01.02.269.061
09-07 15:43:39.586 23032 23085 I Adreno  : Remote Branch                    : NONE
09-07 15:43:39.586 23032 23085 I Adreno  : Reconstruct Branch               : NOTHING
09-07 15:43:39.595 23032 23085 I OpenGLRenderer: Initialized EGL, version 1.4
09-07 15:43:39.596 23032 23085 D OpenGLRenderer: Swap behavior 1
09-07 15:43:39.619 23032 23084 I Codename One: Resource not found: theme_phone.ovr
09-07 15:43:39.619 23032 23084 I Codename One: Resource not found: theme_android.ovr
09-07 15:43:39.619 23032 23084 I Codename One: Resource not found: theme_android-phone.ovr
09-07 15:43:39.630 23032 23041 I art     : Do partial code cache collection, code=9KB, data=30KB
09-07 15:43:39.630 23032 23041 I art     : After code cache collection, code=9KB, data=30KB
09-07 15:43:39.630 23032 23041 I art     : Increasing code cache capacity to 128KB
09-07 15:43:39.684 23032 23084 D RedirectToCameraHtml: [EDT] 0:0:0,124 - WARNING: Theme sets the commandBehavior constant which is deprecated.  Please update the theme to NOT include this theme constant.  Using commandBehavior may cause your app to perform in unexpected ways.  In particular, using SIDE command behavior in conjunction with Toolbar.setOnTopSideMenu(true) may result in runtime exceptions.
09-07 15:43:39.685 23032 23084 D RedirectToCameraHtml: [EDT] 0:0:0,126 - WARNING: Display.setCommandBehavior() is deprecated, Using it may result in unexpected behaviour. In particular, using COMMAND_BEHAVIOR_SIDE_NAVIGATION in conjunction with Toolbar.setOnTopSideMenu(true) may result in runtime errors.
09-07 15:43:39.691 23032 23094 D NetworkSecurityConfig: No Network Security Config specified, using platform default
09-07 15:43:39.707 23032 23094 D ApplicationLoaders: ignored Vulkan layer search path /data/app/com.android.chrome-2/lib/arm64:/data/app/com.android.chrome-2/base.apk!/lib/arm64-v8a for namespace 0x7f95e31160
09-07 15:43:39.708 23032 23084 I Timeline: Timeline: Activity_launch_request time:42584312 intent:Intent { act=android.content.pm.action.REQUEST_PERMISSIONS pkg=com.google.android.packageinstaller (has extras) }
09-07 15:43:39.714 23032 23094 I WebViewFactory: Loading com.android.chrome version 68.0.3440.91 (code 344009152)
09-07 15:43:39.769 23032 23041 I art     : Compiler allocated 5MB to compile void com.codename1.ui.plaf.UIManager.resetThemeProps(java.util.Hashtable)
09-07 15:43:39.776 23032 23084 D Codename One: sizechanged: 1080 1964 com.codename1.impl.android.CodenameOneView@8dc66a5
09-07 15:43:39.781 23032 23032 E SpannableStringBuilder: SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
09-07 15:43:39.781 23032 23032 E SpannableStringBuilder: SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
09-07 15:43:39.795 23032 23094 I cr_LibraryLoader: Time to load native libraries: 8 ms (timestamps 4390-4398)
09-07 15:43:39.808 23032 23094 I chromium: [INFO:library_loader_hooks.cc(36)] Chromium logging enabled: level = 0, default verbosity = 0
09-07 15:43:39.808 23032 23108 E cr_VariationsUtils: Failed reading seed file "/data/user/0/com.mycompany.myapp/app_webview/variations_seed_new": /data/user/0/com.mycompany.myapp/app_webview/variations_seed_new (No such file or directory)
09-07 15:43:39.808 23032 23094 I cr_LibraryLoader: Expected native library version number "68.0.3440.91", actual native library version number "68.0.3440.91"
09-07 15:43:39.809 23032 23108 E cr_VariationsUtils: Failed reading seed file "/data/user/0/com.mycompany.myapp/app_webview/variations_seed": /data/user/0/com.mycompany.myapp/app_webview/variations_seed (No such file or directory)
09-07 15:43:39.815 23032 23108 W System  : ClassLoader referenced unknown path: 
09-07 15:43:39.818 23032 23108 D ApplicationLoaders: ignored Vulkan layer search path /data/app/com.android.chrome-2/lib/arm64:/data/app/com.android.chrome-2/base.apk!/lib/arm64-v8a for namespace 0x7f95e311d0
09-07 15:43:39.851 23032 23041 I art     : Do partial code cache collection, code=39KB, data=61KB
09-07 15:43:39.851 23032 23041 I art     : After code cache collection, code=39KB, data=61KB
09-07 15:43:39.851 23032 23041 I art     : Increasing code cache capacity to 256KB
09-07 15:43:39.853 23032 23041 I art     : Compiler allocated 4MB to compile com.codename1.ui.plaf.Style com.codename1.ui.plaf.UIManager.createStyle(java.lang.String, java.lang.String, boolean)
09-07 15:43:42.420 23032 23032 E SpannableStringBuilder: SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
09-07 15:43:42.420 23032 23032 E SpannableStringBuilder: SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
09-07 15:43:42.432 23032 23084 D RedirectToCameraHtml: [EDT] 0:0:2,874 - getCameraPermission() >> true
09-07 15:43:42.534 23032 23032 I cr_BrowserStartup: Initializing chromium process, singleProcess=true
09-07 15:43:42.538 23032 23032 I cr_base : Android Locale: en_IN requires .pak files: [en-GB, en-US]
09-07 15:43:42.553 23032 23032 W ResourceType: Failure getting entry for 0x7f1204a3 (t=17 e=1187) (error -2147483647)
09-07 15:43:42.640 23032 23032 I art     : Rejecting re-init on previously-failed class java.lang.Class<ul>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/webkit/SafeBrowsingResponse;
09-07 15:43:42.640 23032 23032 I art     :   at xf com.android.webview.chromium.WebViewChromiumFactoryProvider.a(android.webkit.WebView, android.content.Context) (SourceFile:209)
09-07 15:43:42.640 23032 23032 I art     :   at void com.android.webview.chromium.WebViewChromium.init(java.util.Map, boolean) (SourceFile:63)
09-07 15:43:42.640 23032 23032 I art     :   at void android.webkit.WebView.<init>(android.content.Context, android.util.AttributeSet, int, int, java.util.Map, boolean) (WebView.java:636)
09-07 15:43:42.640 23032 23032 I art     :   at void android.webkit.WebView.<init>(android.content.Context, android.util.AttributeSet, int, int) (WebView.java:572)
09-07 15:43:42.640 23032 23032 I art     :   at void android.webkit.WebView.<init>(android.content.Context, android.util.AttributeSet, int) (WebView.java:555)
09-07 15:43:42.640 23032 23032 I art     :   at void android.webkit.WebView.<init>(android.content.Context, android.util.AttributeSet) (WebView.java:542)
09-07 15:43:42.641 23032 23032 I art     :   at void android.webkit.WebView.<init>(android.content.Context) (WebView.java:532)
09-07 15:43:42.641 23032 23032 I art     :   at void com.codename1.impl.android.AndroidImplementation$21$1.<init>(com.codename1.impl.android.AndroidImplementation$21, android.content.Context) (AndroidImplementation.java:4143)
09-07 15:43:42.641 23032 23032 I art     :   at void com.codename1.impl.android.AndroidImplementation$21.run() (AndroidImplementation.java:4143)
09-07 15:43:42.641 23032 23032 I art     :   at void android.os.Handler.handleCallback(android.os.Message) (Handler.java:754)
09-07 15:43:42.641 23032 23032 I art     :   at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:95)
09-07 15:43:42.641 23032 23032 I art     :   at void android.os.Looper.loop() (Looper.java:163)
09-07 15:43:42.641 23032 23032 I art     :   at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6396)
09-07 15:43:42.641 23032 23032 I art     :   at java.lang.Object java.lang.reflect.Method.invoke!(java.lang.Object, java.lang.Object[]) (Method.java:-2)
09-07 15:43:42.641 23032 23032 I art     :   at void com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run() (ZygoteInit.java:904) 
09-07 15:43:42.641 23032 23032 I art     :   at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:794)
09-07 15:43:42.641 23032 23032 I art     : Caused by: java.lang.ClassNotFoundException: Didn't find class "android.webkit.SafeBrowsingResponse" on path: DexPathList[[zip file "/data/app/com.android.chrome-2/base.apk"],nativeLibraryDirectories=[/data/app/com.android.chrome-2/lib/arm64, /data/app/com.android.chrome-2/base.apk!/lib/arm64-v8a, /system/lib64, /vendor/lib64]]
09-07 15:43:42.641 23032 23032 I art     :   at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:56)
09-07 15:43:42.641 23032 23032 I art     :   at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:380)
09-07 15:43:42.641 23032 23032 I art     :   at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
09-07 15:43:42.641 23032 23032 I art     :   at xf com.android.webview.chromium.WebViewChromiumFactoryProvider.a(android.webkit.WebView, android.content.Context) (SourceFile:209)
09-07 15:43:42.641 23032 23032 I art     :   at void com.android.webview.chromium.WebViewChromium.init(java.util.Map, boolean) (SourceFile:63)
09-07 15:43:42.641 23032 23032 I art     :   at void android.webkit.WebView.<init>(android.content.Context, android.util.AttributeSet, int, int, java.util.Map, boolean) (WebView.java:636)
09-07 15:43:42.641 23032 23032 I art     :   at void android.webkit.WebView.<init>(android.content.Context, android.util.AttributeSet, int, int) (WebView.java:572)
09-07 15:43:42.641 23032 23032 I art     :   at void android.webkit.WebView.<init>(android.content.Context, android.util.AttributeSet, int) (WebView.java:555)
09-07 15:43:42.641 23032 23032 I art     :   at void android.webkit.WebView.<init>(android.content.Context, android.util.AttributeSet) (WebView.java:542)
09-07 15:43:42.641 23032 23032 I art     :   at void android.webkit.WebView.<init>(android.content.Context) (WebView.java:532)
09-07 15:43:42.641 23032 23032 I art     :   at void com.codename1.impl.android.AndroidImplementation$21$1.<init>(com.codename1.impl.android.AndroidImplementation$21, android.content.Context) (AndroidImplementation.java:4143)
09-07 15:43:42.641 23032 23032 I art     :   at void com.codename1.impl.android.AndroidImplementation$21.run() (AndroidImplementation.java:4143)
09-07 15:43:42.641 23032 23032 I art     :   at void android.os.Handler.handleCallback(android.os.Message) (Handler.java:754)
09-07 15:43:42.641 23032 23032 I art     :   at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:95)
09-07 15:43:42.641 23032 23032 I art     :   at void android.os.Looper.loop() (Looper.java:163)
09-07 15:43:42.641 23032 23032 I art     :   at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6396)
09-07 15:43:42.641 23032 23032 I art     :   at java.lang.Object java.lang.reflect.Method.invoke!(java.lang.Object, java.lang.Object[]) (Method.java:-2)
09-07 15:43:42.641 23032 23032 I art     :   at void com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run() (ZygoteInit.java:904)
09-07 15:43:42.642 23032 23032 I art     :   at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:794)
09-07 15:43:42.642 23032 23032 I art     : 
09-07 15:43:42.647 23032 23032 I art     : Rejecting re-init on previously-failed class java.lang.Class<xo>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/webkit/RenderProcessGoneDetail;
09-07 15:43:42.647 23032 23032 I art     :   at xf com.android.webview.chromium.WebViewChromiumFactoryProvider.a(android.webkit.WebView, android.content.Context) (SourceFile:209)
09-07 15:43:42.647 23032 23032 I art     :   at void com.android.webview.chromium.WebViewChromium.init(java.util.Map, boolean) (SourceFile:63)
09-07 15:43:42.647 23032 23032 I art     :   at void android.webkit.WebView.<init>(android.content.Context, android.util.AttributeSet, int, int, java.util.Map, boolean) (WebView.java:636)
09-07 15:43:42.647 23032 23032 I art     :   at void android.webkit.WebView.<init>(android.content.Context, android.util.AttributeSet, int, int) (WebView.java:572)
09-07 15:43:42.647 23032 23032 I art     :   at void android.webkit.WebView.<init>(android.content.Context, android.util.AttributeSet, int) (WebView.java:555)
09-07 15:43:42.647 23032 23032 I art     :   at void android.webkit.WebView.<init>(android.content.Context, android.util.AttributeSet) (WebView.java:542)
09-07 15:43:42.647 23032 23032 I art     :   at void android.webkit.WebView.<init>(android.content.Context) (WebView.java:532)
09-07 15:43:42.647 23032 23032 I art     :   at void com.codename1.impl.android.AndroidImplementation$21$1.<init>(com.codename1.impl.android.AndroidImplementation$21, android.content.Context) (AndroidImplementation.java:4143)
09-07 15:43:42.647 23032 23032 I art     :   at void com.codename1.impl.android.AndroidImplementation$21.run() (AndroidImplementation.java:4143)
09-07 15:43:42.647 23032 23032 I art     :   at void android.os.Handler.handleCallback(android.os.Message) (Handler.java:754)
09-07 15:43:42.647 23032 23032 I art     :   at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:95)
09-07 15:43:42.647 23032 23032 I art     :   at void android.os.Looper.loop() (Looper.java:163)
09-07 15:43:42.647 23032 23032 I art     :   at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6396)
09-07 15:43:42.647 23032 23032 I art     :   at java.lang.Object java.lang.reflect.Method.invoke!(java.lang.Object, java.lang.Object[]) (Method.java:-2)
09-07 15:43:42.647 23032 23032 I art     :   at void com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run() (ZygoteInit.java:904)
09-07 15:43:42.648 23032 23032 I art     :   at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:794)
09-07 15:43:42.648 23032 23032 I art     : Caused by: java.lang.ClassNotFoundException: Didn't find class "android.webkit.RenderProcessGoneDetail" on path: DexPathList[[zip file "/data/app/com.android.chrome-2/base.apk"],nativeLibraryDirectories=[/data/app/com.android.chrome-2/lib/arm64, /data/app/com.android.chrome-2/base.apk!/lib/arm64-v8a, /system/lib64, /vendor/lib64]]
09-07 15:43:42.648 23032 23032 I art     :   at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:56)
09-07 15:43:42.648 23032 23032 I art     :   at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:380)
09-07 15:43:42.648 23032 23032 I art     :   at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
09-07 15:43:42.648 23032 23032 I art     :   at xf com.android.webview.chromium.WebViewChromiumFactoryProvider.a(android.webkit.WebView, android.content.Context) (SourceFile:209)
09-07 15:43:42.648 23032 23032 I art     :   at void com.android.webview.chromium.WebViewChromium.init(java.util.Map, boolean) (SourceFile:63)
09-07 15:43:42.648 23032 23032 I art     :   at void android.webkit.WebView.<init>(android.content.Context, android.util.AttributeSet, int, int, java.util.Map, boolean) (WebView.java:636)
09-07 15:43:42.648 23032 23032 I art     :   at void android.webkit.WebView.<init>(android.content.Context, android.util.AttributeSet, int, int) (WebView.java:572)
09-07 15:43:42.648 23032 23032 I art     :   at void android.webkit.WebView.<init>(android.content.Context, android.util.AttributeSet, int) (WebView.java:555)
09-07 15:43:42.648 23032 23032 I art     :   at void android.webkit.WebView.<init>(android.content.Context, android.util.AttributeSet) (WebView.java:542)
09-07 15:43:42.648 23032 23032 I art     :   at void android.webkit.WebView.<init>(android.content.Context) (WebView.java:532)
09-07 15:43:42.648 23032 23032 I art     :   at void com.codename1.impl.android.AndroidImplementation$21$1.<init>(com.codename1.impl.android.AndroidImplementation$21, android.content.Context) (AndroidImplementation.java:4143)
09-07 15:43:42.648 23032 23032 I art     :   at void com.codename1.impl.android.AndroidImplementation$21.run() (AndroidImplementation.java:4143)
09-07 15:43:42.648 23032 23032 I art     :   at void android.os.Handler.handleCallback(android.os.Message) (Handler.java:754)
09-07 15:43:42.648 23032 23032 I art     :   at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:95)
09-07 15:43:42.648 23032 23032 I art     :   at void android.os.Looper.loop() (Looper.java:163)
09-07 15:43:42.648 23032 23032 I art     :   at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6396)
09-07 15:43:42.648 23032 23032 I art     :   at java.lang.Object java.lang.reflect.Method.invoke!(java.lang.Object, java.lang.Object[]) (Method.java:-2)
09-07 15:43:42.648 23032 23032 I art     :   at void com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run() (ZygoteInit.java:904)
09-07 15:43:42.648 23032 23032 I art     :   at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:794)
09-07 15:43:42.648 23032 23032 I art     : 
09-07 15:43:42.751 23032 23032 D EgretLoader: EgretLoader(Context context)
09-07 15:43:42.754 23032 23032 D EgretLoader: The context is not activity


推荐答案

您需要在Android 6+中提示输入本机权限。将它们添加到XML仅适用于旧版本的Android。如果您在Codename One中使用相机API,但这通常是自动的,但不适用于HTML,因为我们无法告知您将尝试访问相机。

You need to prompt for native permissions in Android 6+. Adding them to the XML only works for older versions of Android. This is normally automatic if you use a camera API in Codename One but won't work for the case of HTML because we can't tell that you will try to access the camera.

您可以创建本地界面类似于:

public boolean promptCameraPermission();

由于不需要它,因此可以在所有其他平台上不使用它,然后在支持时为true您可以调用它来寻求许可。

You can leave it unimplemented in all other platforms as it isn't needed, then when supported is true you can just invoke it to ask for permission.

return checkForPermission(Manifest.permission.CAMERA, "This is required to take a picture");

请确保导入 com.codename1.impl.android.AndroidImplementation;

这篇关于HTML视频控件无法在Codenameone应用程序中运行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆