我有一个Android应用程序项目(A)和一个Android库项目(L)。A使用L作为库。
库项目L已经使用了几个外部库:Apache Commons Codec 1.7,Apache Commons Lang3 3.1,Android Support库V4和ActionBarSherlock 4.0。所有这些库以及调用它们的代码都运行得非常好,并且一直运行良好。
然而,我最近添加了一个库:Apache Commons IO 2.4。现在,每当库代码(在L中)尝试调用Commons IO中的方法时,我的应用程序就会崩溃。
我添加IO库的方式与添加其他任何外部库完全相同: 当我的应用程序首次启动时,我收到以下信息:
库项目L已经使用了几个外部库:Apache Commons Codec 1.7,Apache Commons Lang3 3.1,Android Support库V4和ActionBarSherlock 4.0。所有这些库以及调用它们的代码都运行得非常好,并且一直运行良好。
然而,我最近添加了一个库:Apache Commons IO 2.4。现在,每当库代码(在L中)尝试调用Commons IO中的方法时,我的应用程序就会崩溃。
我添加IO库的方式与添加其他任何外部库完全相同: 当我的应用程序首次启动时,我收到以下信息:
11-01 12:32:14.243: I/dalvikvm(3815): Could not find method org.apache.commons.io.FileUtils.copyInputStreamToFile, referenced from method au.com.grdc.alib.helpers.LibraryCommon.download
11-01 12:32:14.243: W/dalvikvm(3815): VFY: unable to resolve static method 7039: Lorg/apache/commons/io/FileUtils;.copyInputStreamToFile (Ljava/io/InputStream;Ljava/io/File;)V
之后我得到:
11-01 14:50:48.913: E/AndroidRuntime(10030): FATAL EXCEPTION: AsyncTask #1
11-01 14:50:48.913: E/AndroidRuntime(10030): java.lang.RuntimeException: An error occured while executing doInBackground()
...
11-01 12:35:10.268: E/AndroidRuntime(4493): Caused by: java.lang.NoClassDefFoundError: org.apache.commons.io.FileUtils
11-01 12:35:10.268: E/AndroidRuntime(4493): at au.com.grdc.alib.helpers.LibraryCommon.download(LibraryCommon.java:89)
我看到有人建议将我的"lib"文件夹重命名为"libs",我已经这样做了 - 但这并没有解决问题。
我还看到建议将外部库标记为可导出内容,我也做了,但这也没有解决问题。