4

我使用库项目构建了我的应用程序(我也创建了该项目,以便在其他应用程序中重用)。它构建得很好,但是当我尝试通过 Eclipse (Ctrl+F11) 安装和运行它时,我得到这个红色的找不到 MyLib.apk!我的控制台中的错误行:

控制台输出:

[2013-11-30 14:42:59 - MyApp] ------------------------------
[2013-11-30 14:42:59 - MyApp] Android Launch!
[2013-11-30 14:42:59 - MyApp] adb is running normally.
[2013-11-30 14:42:59 - MyApp] Performing com.sfinja.myapp.ActivitySubClass activity launch
[2013-11-30 14:42:59 - MyApp] Automatic Target Mode: using device '5752068FC64500EA'
[2013-11-30 14:43:00 - MyApp] Application already deployed. No need to reinstall.
[2013-11-30 14:43:00 - MyLib] Could not find MyLib.apk!
[2013-11-30 14:43:00 - MyApp] Starting activity com.sfinja.myapp.ActivitySubClass on device 5752068FC64500EA
[2013-11-30 14:43:00 - MyApp] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.sfinja.myapp/.ActivitySubClass }

所以我搜索了 SO 并找到了这个线程,它通过简单地取消选中库项目的Is Library复选框来解决问题。

果然,我的图书馆项目(MyLib)选中了这个复选框,所以我取消选中它,我不再在控制台中收到这个错误,但后来我开始收到运行时 NullPointerExceptions。

这清楚地表明我的项目设置/配置存在问题(尽管它构建得很好)但是为了找到它是什么,我相信我需要更多地了解这个令人困惑的复选框:

  1. 我在这个应用程序中使用了其他库项目,所有项目都选中了复选框Is Library,但没有一个项目出现 MyLib 所展示的问题。那么,检查还是不检查“IsLibrary”?
  2. 如果是图书馆,为什么要Is Library取消选中该复选框?2年前那个帖子的正确答案仍然有效吗?
  3. 找不到APK!本质上是其他东西的“红鲱鱼”?
4

1 回答 1

2

我记得遇到过与您类似的问题,这让我抓狂。我还认为取消选中项目是库复选框可以解决问题,但实际上并没有。

在浪费了很多时间之后,我找到了罪魁祸首:项目中的一条额外的、多余的、邪恶的、完全具有误导性和破坏性的行.classpath

<classpathentry kind="src" path="/RogueProjLib"/>

(我不知道它是如何潜入的)

一旦我删除它,“找不到 RogueProjLib.apk!” 消失了,项目安装并运行良好,选中了Is Library复选框!

基于此,我将回答您的问题如下:

  1. 您的其他图书馆项目可能不在其中.classpath……是的,请检查Is Library
  2. 问题无关紧要,因为它应该被检查。2 年前的答案与最新的 Eclipse/ADT 捆绑包不再相关。
  3. 是的,这是一条红鲱鱼:它没有告诉您“我的 .classpath 中有一条奇怪的线,我不知道该怎么做”,而是发出神秘的“找不到 APK”消息。

希望这可以帮助。

于 2013-12-02T02:52:29.477 回答