android – 要检查还是不检查“IsLibrary”?

我使用库项目(我也创建了,在其他应用程序中重用)构建了我的应用程序.它构建良好,但当我尝试安装&通过
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并找到了this thread,它通过简单地取消选中库项目的Is Librarycheckbox来解决问题.

果然,我的图书馆计划(MyLib)已选中此复选框,因此我取消选中它,我不再在控制台中收到此错误,但随后我开始获得运行时NullPointerExceptions.

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

>我在这个应用程序中使用了其他库项目,都选中了Is Library复选框,但它们都没有显示MyLib展示的问题.那么,检查或不检查“IsLibrary”?
>如果它是库,为什么要取消选中Is Library复选框? 2年前该线程的正确答案仍然有效吗?
>难道找不到APK!其他东西本质上是一个“红鲱鱼”?

最佳答案 我记得遇到类似于你的问题让我疯了.我还认为取消选中项目Is Library复选框可以解决问题,但实际上并没有.

经过大量的工作,我找到了罪魁祸首:项目的.classpath中一个额外的,多余的,邪恶的,完全误导和破坏性的行:

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

(我不知道它是如何偷偷摸摸的)

一旦我删除它,“找不到RogueProjLib.apk!”离开并安装项目并运行正常,选中Is Library复选框!

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

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

希望这可以帮助.

点赞