找不到Library.apk!


73

我设法很好地重组了我的应用程序,因此,除了派生的Activity类中的一些方法外,所有内容都在Library Project中。

除了Eclipse的控制台(不是LogCat!)发出以下错误消息外,它的工作方式非常漂亮:

[2011-06-13 19:54:08 - MyLibrary] Could not find MyLibrary.apk!

我清理了两个项目(库应用程序),重新启动了Eclipse,重新构建了项目,但是这个奇怪的错误消息仍然存在。

此错误消息是什么意思?(尤其是考虑到一切似乎都运行良好)

我如何摆脱它?

更新:我尝试删除该项目,然后根据以下建议重新导入它。它没有帮助。然后,我发现此线程帮助我意识到我<uses-library>在应用程序的AndroidManifest.xml中具有MyLibrary。我删除了它,清理了项目并重建了。问题仍然存在。

我现在怀疑这是“真正的问题”,例如我配置的某些路径或其他内容配置错误。会是什么呢?

Answers:


162

我找到了问题的根源!

事实证明,“使用新的库功能,您无需在属性的Java Build Path部分中指定要依赖的Android项目。您可以在Properties的Android部分中进行操作”。

因此,我要做的就是去“应用程序项目” Properties,单击Projects选项卡,选择我自己的库项目,然后单击Remove按钮。而已。没问题了。

在Eclipse Java EE中,选择项目Properties,然后选择Project References,然后检查FacebookSDK(请参阅截屏)在此处输入图片说明

感谢Lance Nanek


3
我已经很累了,它确实解决了问题,但是现在当我对库中定义的类进行“打开声明”时,它会打开MyClass.class文件,而应该打开MyClass.java文件。关于打开.class而不是.java的另一个SO问题(stackoverflow.com/questions/9682074/…)建议在构建路径中添加库项目作为项目引用!因此,似乎没有办法同时解决这两个问题?(使用Eclipse 4.2.0,JDT 3.8.0,ADT 20.0.3)
Herr

3
我发现这里的措辞有些混乱,但这是正确的答案。Lance Nanek更清楚地描述了转到“ Java Build Paths”,选择“ Projects”选项卡,然后从那里删除库。
艾伦·摩尔

5
做完之后 remove,我的应用程序无法在我的库中找到符号,这将有所帮助:使用此新库功能,您无需在“属性”的“ Java构建路径”部分中指定要依赖的Android项目。您可以在Android section“属性”中进行操作。
BillHoo 2013年

1
完成此操作后,我无法再在项目中导入Facebook类。Eclipse找不到它们
LeSam 2014年

1
按照OP的回答步骤执行后,您需要右键单击您的应用程序项目,单击“属性”,再单击“ Android”,然后在“库”部分中,勾选“添加”按钮并添加您的“库”项目。然后,一切都应按预期工作,并且不显示任何错误消息。
禁止地球工程

4

很有意思...我没有完全按照答案的意思做..

我有一个名为“ ConnectionHandler ”的单独的Android项目,该项目连接到Web服务以检索信息。该项目不包含活动类。(如果确实如此,您将需要在主应用程序中更改AndroidManifest文件,并按照以下说明进行操作)。

要将单独的ConnectionHandler项目 用作库,我需要执行以下操作:

  1. 在主应用程序中>选择项目属性>转到Java Build Path> Add Jars>选择ConnectionHandler的bin文件夹>选择connectionhandler.jar
  2. 在ConnectionHandler项目>选择项目属性> Android>检查isLibrary中
  3. 在MainApplication>选择项目属性>转到Android>在Library部分中添加对ConnectionHandler的引用。

这适用于 有效,即使我的主应用程序中没有源文件也可以连接到我的Web服务。一切都包含在正在引用的ConnectionHandler jar中。

希望这可以帮助某人...


2

今天,我开始在Eclipse的“控制台”视图上收到此错误消息,但事实证明这不是问题所在。我的应用程序将在我的设备上构建并安装,甚至可以运行一秒钟(直到崩溃)。这是我的控制台视图在Eclipse上的样子:

[2013-06-03 09:42:25 - my-android] Android Launch!
[2013-06-03 09:42:25 - my-android] adb is running normally.
[2013-06-03 09:42:25 - my-android] Performing com.my.android.activity.MainActivity activity launch
[2013-06-03 09:42:25 - my-android] Uploading my-android.apk onto device '650rfs2e'
[2013-06-03 09:42:31 - my-android] Installing my-android.apk...
[2013-06-03 09:42:35 - my-android] Success!
[2013-06-03 09:42:36 - my-other-android] Could not find my-other-android.apk!
[2013-06-03 09:42:36 - android-SherlockFragment] Could not find android-SherlockFragment.apk!
[2013-06-03 09:42:36 - my-android] Starting activity com.my.android.activity.MainActivity on device 650rfs2e
[2013-06-03 09:42:36 - my-android] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.my.android/.activity.MainActivity }

但是在仔细检查我的LogCat时,从我尝试初始化的片段中抛出了一个愚蠢的异常。一旦我修复了片段(正在提高NPE),一切工作就很好了,即使通过我的控制台仍然告诉我它找不到那些库APK。


1

您是否尝试过删除项目而不从硬盘驱动器中删除并重新导入项目。当我遇到这个问题时,这似乎对我有用。


2
您是说当今的编程越来越像伏都教而不再像科学一样?:)我会尝试您的建议并报告。同时,请+1以寻求帮助。
2011年

我只是尝试删除应用程序项目,然后才重新导入它。没有帮助。现在,我将尝试删除图书馆项目...
2011年

我只是尝试删除项目,然后重新导入它。没有帮助。我现在怀疑这是真正的问题,例如我配置的某些路径或其他内容配置错误。会是什么呢?
2011年

0

使用Eclipse Preferences,您最终可能会在各处添加库。我在/ libs和“参考库”文件夹中有一个参考库。我必须从这些位置删除或删除它们,然后将其插入Android Dependencies(使用“偏好设置”->“ Android”并在“ Is Library”复选框下方浏览。)

我的项目的正确布局:http : //www.pasteall.org/pic/show.php?id=34513


0

对我来说,发生这种情况的原因是库项目和主项目具有相同的包。更改软件包的最简单方法是right click on the library project > Android Tools > Rename Application Package


0

对我来说,此问题的解决方案是从库项目的清单文件中删除错误的条目。

只有在我的库项目首次使用时,崩溃才会在运行时发生。一旦更改了“应用程序名称”属性以反映使用库项目的项目的正确应用程序类,便可以正常工作

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.