首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android:与项目库相比,jar库无法工作

Android:与项目库相比,jar库无法工作
EN

Stack Overflow用户
提问于 2013-09-11 09:28:10
回答 2查看 1.2K关注 0票数 3

我被安卓图书馆的东西困住了。

我有过

  • 一个专门为这个库设计的项目(让我们把它叫做开玩笑)。
  • 一个带有应用程序的项目(让我们称之为testPhilippe)
  • 从库生成的jar (让我们称之为jokerly.jar)

这个开玩笑库是一个使用视图、xml、图片和生成的文件(如R.java)的图形库。

在导入properties/android/library中的jokerly (项目)时,我设法启动了我的应用程序,没有任何问题。一切都很好-这是图片:

好了!

另一方面,当我试图在java构建路径中导入jokerly.jar (并将jokerly项目从上面相同的位置移除)时,无论复选框的状态和jokerly.jar在属性/javabuildpath/order和导出中的位置如何,我都有一个classNotFound异常。我还尝试手动将它放在libs文件夹中,但问题是一样的。

代码语言:javascript
复制
java.lang.RuntimeException: Unable to instantiate application com.example.testphilippe.Jokerly: java.lang.ClassNotFoundException: Didn't find class "com.example.testphilippe.Jokerly" on path: DexPathList[[zip file "/data/app/com.example.testphilippe-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.example.testphilippe-2, /vendor/lib, /system/lib]]
at android.app.LoadedApk.makeApplication(LoadedApk.java:509)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4417)
at android.app.ActivityThread.access$1300(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1316)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.example.testphilippe.Jokerly" on path: DexPathList[[zip file "/data/app/com.example.testphilippe-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.example.testphilippe-2, /vendor/lib, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:53)
at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
at android.app.Instrumentation.newApplication(Instrumentation.java:975)
at android.app.LoadedApk.makeApplication(LoadedApk.java:504)
09-11 11:13:37.350: E/AndroidRuntime(22080):    ... 11 more

我(根据@Vj_Droid的建议)尝试了更多的狂热:

我在项目外部的java构建路径(而不是lib文件夹)中添加了jokerly.jar。如果不选中复选框,我也有相同的错误。如果我检查它,我有以下错误。如果我在libs文件夹中手动添加jokerly.jar,然后从libs文件夹中将它添加到javabuild中,则即使未选中该框,也会出现相同的错误(如下)。

代码语言:javascript
复制
[2013-09-11 11:59:42 - TestPhilippe] Error generating final archive: Found duplicate file for APK: AndroidManifest.xml
Origin 1: /Users/markelys/Dropbox/Tech/Projets/Android/Workspace/TestPhilippe/bin/resources.ap_
Origin 2: /Users/markelys/Dropbox/Tech/Projets/Android/Workspace/jokerly.jar

下面是我导出Jar文件时所做的工作:

如果你需要更多的信息,可以随时询问!

我已经坚持了好几天了.任何帮助都将不胜感激!

EN

回答 2

Stack Overflow用户

发布于 2013-09-11 12:48:48

根据@TactMayers链接中的Android医生 (谢谢!),目前还不可能:

但是,库项目与标准的Android应用程序项目不同,因为不能将其直接编译到自己的.apk上并在Android设备上运行。类似地, 您不能像对一个真正的库那样将库项目导出到一个自包含的JAR文件中,相反,必须通过引用依赖应用程序中的库并构建该应用程序来间接编译库。

重点似乎是资源和清单,以及所有需要注意的纯java代码。通常情况下,视图、xml等等。似乎有计划增加这种支持,但现在肯定不存在。

因此,如果有人有更多关于这方面的信息,并更新了ADK团队为之创建的东西,那就太好了!

谢谢大家的帮助!

票数 3
EN

Stack Overflow用户

发布于 2013-09-11 12:06:43

代码语言:javascript
复制
 > Caused by: java.lang.ClassNotFoundException: Didn't find class "com.example.testphilippe.Jokerly" ... 

在“OrderandExport”页面中,您的jar没有标记为“将此jar复制到android”,因此类加载程序无法找到它。设置复选标记,"ClassNotFoundException“就会消失。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18737427

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档