简体   繁体   English

Android-安装Apache Commons VFS-问题

[英]Android - Installing Apache Commons VFS - Issues

I'm hoping to use the Apache Commons VFS library in my Android project and have downloaded the relevant files from http://commons.apache.org/vfs/download_vfs.cgi . 我希望在我的Android项目中使用Apache Commons VFS库,并已从http://commons.apache.org/vfs/download_vfs.cgi下载了相关文件。 However. 然而。 I'm getting some issues. 我遇到了一些问题。

I've copied the commons-vfs2-2.0.jar file into a /libs/ subdirectory of my android project and referenced it in the java build path in Eclipse. 我已将commons-vfs2-2.0.jar文件复制到我的android项目的/ libs /子目录中,并在Eclipse的java构建路径中对其进行了引用。 I have also referenced the Commons Logging library which is used by Commons VFS (http://commons.apache.org/vfs/download.html). 我还引用了Commons VFS使用的Commons Logging库(http://commons.apache.org/vfs/download.html)。

Everything compiles fine, but as soon as I try the following line of code 一切都可以正常编译,但是只要我尝试下面的代码行

FileSystemManager fsManager = VFS.getManager();

I get an exception. 我有一个例外。 Here's the stack trace: 这是堆栈跟踪:

02-06 16:22:29.724: ERROR/Fatal Error(20515): Could not create a file system manager   of class "org.apache.commons.vfs2.impl.StandardFileSystemManager".
02-06 16:22:29.724: ERROR/Fatal Error(20515): org.apache.commons.vfs2.FileSystemException: Could not create a file system manager of class "org.apache.commons.vfs2.impl.StandardFileSystemManager".
02-06 16:22:29.724: ERROR/Fatal Error(20515):     at org.apache.commons.vfs2.VFS.createManager(VFS.java:99)
02-06 16:22:29.724: ERROR/Fatal Error(20515):     at org.apache.commons.vfs2.VFS.getManager(VFS.java:50)
02-06 16:22:29.724: ERROR/Fatal Error(20515):     at gymApp.gymAppPackage.Utility.test(Utility.java:391)
02-06 16:22:29.724: ERROR/Fatal Error(20515):     at gymApp.gymAppPackage.HomeActivity.onCreate(HomeActivity.java:51)
02-06 16:22:29.724: ERROR/Fatal Error(20515):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
02-06 16:22:29.724: ERROR/Fatal Error(20515):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2466)
02-06 16:22:29.724: ERROR/Fatal Error(20515):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2519)
02-06 16:22:29.724: ERROR/Fatal Error(20515):     at android.app.ActivityThread.access$2200(ActivityThread.java:123)
02-06 16:22:29.724: ERROR/Fatal Error(20515):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1870)
02-06 16:22:29.724: ERROR/Fatal Error(20515):     at android.os.Handler.dispatchMessage(Handler.java:99)
02-06 16:22:29.724: ERROR/Fatal Error(20515):     at android.os.Looper.loop(Looper.java:123)
02-06 16:22:29.724: ERROR/Fatal Error(20515):     at android.app.ActivityThread.main(ActivityThread.java:4370)
02-06 16:22:29.724: ERROR/Fatal Error(20515):     at java.lang.reflect.Method.invokeNative(Native Method)
02-06 16:22:29.724: ERROR/Fatal Error(20515):     at java.lang.reflect.Method.invoke(Method.java:521)
02-06 16:22:29.724: ERROR/Fatal Error(20515):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
02-06 16:22:29.724: ERROR/Fatal Error(20515):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
02-06 16:22:29.724: ERROR/Fatal Error(20515):     at dalvik.system.NativeStart.main(Native Method)
02-06 16:22:29.724: ERROR/Fatal Error(20515): Caused by: org.apache.commons.vfs2.FileSystemException: Could not load VFS configuration from "jar:file:/data/app/gymApp.gymAppPackage.apk!/org/apache/commons/vfs2/impl/providers.xml".
02-06 16:22:29.724: ERROR/Fatal Error(20515):     at org.apache.commons.vfs2.impl.StandardFileSystemManager.configure(StandardFileSystemManager.java:199)
02-06 16:22:29.724: ERROR/Fatal Error(20515):     at org.apache.commons.vfs2.impl.StandardFileSystemManager.init(StandardFileSystemManager.java:123)
02-06 16:22:29.724: ERROR/Fatal Error(20515):     at java.lang.reflect.Method.invokeNative(Native Method)
02-06 16:22:29.724: ERROR/Fatal Error(20515):     at java.lang.reflect.Method.invoke(Method.java:521)
02-06 16:22:29.724: ERROR/Fatal Error(20515):     at org.apache.commons.vfs2.VFS.createManager(VFS.java:88)
02-06 16:22:29.724: ERROR/Fatal Error(20515):     ... 16 more
02-06 16:22:29.724: ERROR/Fatal Error(20515): Caused by: org.apache.commons.vfs2.FileSystemException: Could not create file provider of class "org.apache.commons.vfs2.provider.local.DefaultLocalFileProvider".
02-06 16:22:29.724: ERROR/Fatal Error(20515):     at org.apache.commons.vfs2.impl.StandardFileSystemManager.createInstance(StandardFileSystemManager.java:490)
02-06 16:22:29.724: ERROR/Fatal Error(20515):     at org.apache.commons.vfs2.impl.StandardFileSystemManager.addProvider(StandardFileSystemManager.java:371)
02-06 16:22:29.724: ERROR/Fatal Error(20515):     at org.apache.commons.vfs2.impl.StandardFileSystemManager.configure(StandardFileSystemManager.java:270)
02-06 16:22:29.724: ERROR/Fatal Error(20515):     at org.apache.commons.vfs2.impl.StandardFileSystemManager.configure(StandardFileSystemManager.java:195)
02-06 16:22:29.724: ERROR/Fatal Error(20515):     ... 20 more
02-06 16:22:29.724: ERROR/Fatal Error(20515): Caused by: java.lang.ClassNotFoundException: org.apache.commons.vfs2.provider.local.DefaultLocalFileProvider in loader dalvik.system.PathClassLoader@400264d8
02-06 16:22:29.724: ERROR/Fatal Error(20515):     at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243)
02-06 16:22:29.724: ERROR/Fatal Error(20515):     at java.lang.ClassLoader.loadClass(ClassLoader.java:573)
02-06 16:22:29.724: ERROR/Fatal Error(20515):     at java.lang.ClassLoader.loadClass(ClassLoader.java:532)
02-06 16:22:29.724: ERROR/Fatal Error(20515):     at org.apache.commons.vfs2.impl.StandardFileSystemManager.createInstance(StandardFileSystemManager.java:485)
02-06 16:22:29.724: ERROR/Fatal Error(20515):     ... 23 more

It seems like something basic is wrong with the installation, but I'm not sure what it is (Java is not my first language ;). 看来安装有基本问题,但是我不确定它是什么(Java不是我的第一语言;)。 Is there something special that needs to be done given that it is an Android project? 鉴于这是一个Android项目,是否需要做一些特别的事情? Any pointers would be much appreciated. 任何指针将不胜感激。

I had exactly the same problem. 我有完全一样的问题。

I got hold of the commons-vfs source code and traced the error through the code into the plugin initialisation - basically, our S3 provider plugin was being initialised, even though it wasn't needed. 我掌握了commons-vfs源代码,并通过代码将错误跟踪到了插件初始化中-基本上,即使不需要它,我们的S3 provider插件也正在初始化中。 Some funky class loader was spotting vfs-providers.xml in the S3 JAR and trying to initialise it, even though the URL didn't require the plugin. 一些时髦的类加载器在S3 JAR中发现vfs-providers.xml并尝试对其进行初始化,即使URL不需要插件也是如此。

Once I removed the S3 provider JAR from the WEB-INF/lib directory, it all worked fine. 一旦从WEB-INF / lib目录中删除了S3提供程序JAR,它就可以正常工作。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM