Android:Java无法在运行时从我创建的JAR中找到类

时间:2010-11-19 15:07:56

标签: java android eclipse jar

我正在研究一个facebook-sdk示例,并尝试利用.JAR提供的类集合。我对java和eclipse比较陌生,所以我希望我犯了一些明显的错误。

问题是一切似乎都编译得很好,但是当我运行项目(使用android模拟器)时,dalvik vm无法找到我从这个facebook sdk引用的第一个类。 (com / facebook / android / Facebook.class)

顺便说一句,如果我将源代码直接复制到我的项目作为附加包,一切正常。

步骤1:我将com_facebook_android项目导出为.JAR文件。 (右键单击项目,导出,java / jar文件)我选择c:\ data \ jag \ jar作为保存facebooksdk.jar的位置。

第2步:我点击项目HelloGoogleMaps,Selected Java Build Path,Libraries,Add External JARS ......我直接选择了c:\ data \ jag \ jar \ facebooksdk.jar文件。

此时我的项目似乎正在建设(没有错误)。 alt text

步骤3:调试项目并收到错误:

[2010-11-19 09:05:08 - 示例] ActivityManager:错误:活动类{com.facebook.android/com.facebook.android.Example}不存在。 [2010-11-19 09:05:11 - 示例]在设备上启动活动com.facebook.android.Example [2010-11-19 09:05:12 - 示例]尚未在系统中注册的新软件包。在下次尝试前等待3秒。

[2010-11-19 09:05:15 - 示例]在设备上启动活动com.facebook.android.Example

[2010-11-19 09:05:17 - 示例] ActivityManager:开始:Intent {act = android.intent.action.MAIN cat = [android.intent.category.LAUNCHER] cmp = com.facebook.android /.Example}

[2010-11-19 09:05:17 - 示例]尚未在系统中注册的新软件包。在下次尝试前等待3秒。

[2010-11-19 09:05:20 - 示例]在设备上启动活动com.facebook.android.Example

[2010-11-19 09:05:21 - 示例] ActivityManager:开始:Intent {act = android.intent.action.MAIN cat = [android.intent.category.LAUNCHER] cmp = com.facebook.android /.Example}

[2010-11-19 09:05:21 - 示例] ActivityManager:错误类型3

[2010-11-19 09:05:21 - 示例] ActivityManager:错误:活动类{com.facebook.android/com.facebook.android.Example}不存在。

SHAWN - 这是我项目的Android属性。

alt text

3 个答案:

答案 0 :(得分:4)

设置Java Build Path时,只能这样做:设置构建路径本身。这导致您获得成功的编译。但是,当创建.apk文件时,系统不知道您需要将外部jar文件与源文件捆绑在一起。

我之前没有这样做,但是如果你右键单击你的com_facebook_android项目并选择Properties> Android,您应该选择Is Library框。然后进入主项目的Android属性,单击Add ...并选择外部库。我相信这会做你需要的。

编辑: 这称为库项目,是SDK的一个相当新的补充。您可以在http://developer.android.com/guide/developing/eclipse-adt.html#libraryProject

找到更多信息

答案 1 :(得分:0)

我认为您需要将com.facebook.android作为库添加到您的项目中...

如果我没有错,这是android facebook sdk。

你可以查看这个链接...

请参阅此处的说明:

https://github.com/facebook/facebook-android-sdk

希望它可以帮助你........
Thanksss

答案 2 :(得分:0)

好吧,我真的不喜欢我做了什么让我过去了。
1)我将.jar添加为外部jar 2)然后我还将.apk文件包含为.jar(不是外部jar)我必须直接从com_facebook_android / bin / com_facebook_android.apk中选择它。

似乎我用蛮力解决了这个问题,其他更合适的事情。