android - 检查或不检查 "IsLibrary"?

标签 android apk adt android-library library-project

我使用库项目构建了我的应用程序(我也创建了一个库项目,以便在其他应用程序中重复使用)。它构建良好,但是当我尝试通过 Eclipse (Ctrl+F11) 安装和运行它时,我在控制台中看到红色的 Could not find 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 Library 复选框即可解决问题。

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

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

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

最佳答案

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

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

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

(我不知道它是怎么偷偷进来的)

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

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

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

希望这对您有所帮助。

关于android - 检查或不检查 "IsLibrary"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20305286/

相关文章:

android - 卸载时是否有数据库信息

android - 触摸按钮没有声音

java - 所拍摄照片的亮度问题 (Xamarin.Android)

android - LogCat 和 LogCat(已弃用)有什么区别?

adt - 在 Rascal 中使用 "parent"标签注释 ADT/节点树

java - 菜单操作项的 setVisibility

android - 尝试在 Google Play 上发布 Android apk 时出现 aapt dump badging 错误

android - apk 文件的加密会阻止黑客对其进行反编译吗?

android - 对 APK 进行少量文本编辑后是否可以重新打包?

android - 使用 Art 代替 Dalvik 编译