jnius.find_javaclass,jnius.JavaException:未找到类';android/webkit/WebView';

jnius.find_javaclass,jnius.JavaException:未找到类';android/webkit/WebView';,android,python,kivy,pyjnius,Android,Python,Kivy,Pyjnius,我在尝试使用jnius的自动类获取Kivy应用程序中的android webview时遇到此错误。解决办法是什么 谢谢 我的代码如下所示: import kivy from kivy.app import App

我在尝试使用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调试部署运行
,并带有调试选项

如果您想在PC上运行它,那么您可以从Kivy安装Android VM,并在上执行以下步骤:

  • 下载虚拟机部分中的。这个 下载容量为1.2GB。提取文件并记住文件的位置 解压目录

  • 从VirtualBox下载区域下载适用于您机器的版本,然后安装它

  • 启动VirtualBox,单击“文件”、“导入设备”

  • 选择提取的目录,文件应命名为“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'

如果类未找到“android/webkit/WebView”异常,您可以在设备上找到jar,或者下载它并将存储它的路径添加到类路径中。

使用Pydroid3测试应用程序,而不编译它们。

哪个.jar文件?它正在查找findsecbugs-plugin-deps-1.4.2.jar中应该包含的类通过添加我正在使用的代码来编辑我的问题。@Rene B.@EnkumicahelDereje另一个问题,您使用的是哪种操作系统?android.webkit.WebView仅在android下运行。如果你在Android设备上运行它,那么你应该使用andoird的虚拟机:@EnkumicahelDereje,我在答案中添加了如何在Linux系统上安装Android VM的描述。