jnius.find_javaclass , jnius.JavaException: Class 未找到 'android/webkit/WebView'
jnius.find_javaclass , jnius.JavaException: Class not found 'android/webkit/WebView'
我在尝试使用 jnius 的自动类在 Kivy 应用程序中获取 android webview 时遇到此错误。有什么办法可以解决?
谢谢
我的代码如下所示:
import kivy
from kivy.app import App
from kivy.lang import Builder
from kivy.utils import platform
from kivy.uix.widget import Widget
from kivy.clock import Clock
from jnius import autoclass
#from android.runnable import run_on_ui_thread
WebView = autoclass('android.webkit.WebView')
WebViewClient = autoclass('android.webkit.WebViewClient')
activity = autoclass('org.renpy.android.PythonActivity').mActivity
class Wv(Widget):
def __init__(self, **kwargs):
super(Wv, self).__init__(**kwargs)
# Clock.schedule_once(self.create_webview, 0) `
# @run_on_ui_thread
# def create_webview(self, *args):
# webview = WebView(activity)
# webview.getSettings().setJavaScriptEnabled(True)
# wvc = WebViewClient();
# webview.setWebViewClient(wvc);
# activity.setContentView(webview)
# webview.loadUrl('http://www.google.com')
class ServiceApp(App):
def build(self):
return Wv()
if __name__ == '__main__':
ServiceApp().run
首先,您应该检查您是否在 Android 环境中 运行 设置代码,因为 android.webkit.WebView 运行 仅在 Android 下并且不在 Windows 或 Linux.
下的 PC 上
推荐的是 Android 设备 和 运行 使用带有调试选项的 Buildozer
命令 buildozer android debug deploy run
的应用程序。
以防万一,您想 运行 它在 PC 上,那么您可以从 Kivy 安装 Android VM 并按照以下步骤操作 https://kivy.org/docs/guide/packaging-android-vm.html:
在虚拟机部分下载 Kivy / Buildozer VM。这
下载是1.2GB。提取文件并记住文件的位置
提取的目录。
从 VirtualBox 下载区下载适合您机器的 VirtualBox 版本并安装。
启动VirtualBox,点击“文件”,“导入设备”。
Select解压后的目录,文件名为“Buildozer VM.ovf”
启动虚拟机并点击“Buildozer”图标。
并在 kivy 中输入 运行。org/docs/guide/packaging-android-vm。html
如果你仍然面临 jnius.JavaException: Class not found 'android/webkit/WebView' 异常的问题,那么你必须添加那个 jar文件到类路径:
import os
os.environ['CLASSPATH'] = 'absolute/path/file.jar'
如果 Class 未找到 'android/webkit/WebView' 异常,您可以在您的设备上找到 jar 或下载它并添加您所在的路径将其存储到类路径中。
使用 Pydroid3 无需编译即可测试您的应用
我在尝试使用 jnius 的自动类在 Kivy 应用程序中获取 android webview 时遇到此错误。有什么办法可以解决?
谢谢
我的代码如下所示:
import kivy
from kivy.app import App
from kivy.lang import Builder
from kivy.utils import platform
from kivy.uix.widget import Widget
from kivy.clock import Clock
from jnius import autoclass
#from android.runnable import run_on_ui_thread
WebView = autoclass('android.webkit.WebView')
WebViewClient = autoclass('android.webkit.WebViewClient')
activity = autoclass('org.renpy.android.PythonActivity').mActivity
class Wv(Widget):
def __init__(self, **kwargs):
super(Wv, self).__init__(**kwargs)
# Clock.schedule_once(self.create_webview, 0) `
# @run_on_ui_thread
# def create_webview(self, *args):
# webview = WebView(activity)
# webview.getSettings().setJavaScriptEnabled(True)
# wvc = WebViewClient();
# webview.setWebViewClient(wvc);
# activity.setContentView(webview)
# webview.loadUrl('http://www.google.com')
class ServiceApp(App):
def build(self):
return Wv()
if __name__ == '__main__':
ServiceApp().run
首先,您应该检查您是否在 Android 环境中 运行 设置代码,因为 android.webkit.WebView 运行 仅在 Android 下并且不在 Windows 或 Linux.
下的 PC 上推荐的是 Android 设备 和 运行 使用带有调试选项的 Buildozer
命令 buildozer android debug deploy run
的应用程序。
以防万一,您想 运行 它在 PC 上,那么您可以从 Kivy 安装 Android VM 并按照以下步骤操作 https://kivy.org/docs/guide/packaging-android-vm.html:
在虚拟机部分下载 Kivy / Buildozer VM。这 下载是1.2GB。提取文件并记住文件的位置 提取的目录。
从 VirtualBox 下载区下载适合您机器的 VirtualBox 版本并安装。
启动VirtualBox,点击“文件”,“导入设备”。
Select解压后的目录,文件名为“Buildozer VM.ovf”
启动虚拟机并点击“Buildozer”图标。
并在 kivy 中输入 运行。org/docs/guide/packaging-android-vm。html
如果你仍然面临 jnius.JavaException: Class not found 'android/webkit/WebView' 异常的问题,那么你必须添加那个 jar文件到类路径:
import os
os.environ['CLASSPATH'] = 'absolute/path/file.jar'
如果 Class 未找到 'android/webkit/WebView' 异常,您可以在您的设备上找到 jar 或下载它并添加您所在的路径将其存储到类路径中。
使用 Pydroid3 无需编译即可测试您的应用