我使用库项目(我也创建了,在其他应用程序中重用)构建了我的应用程序。它构建良好,但当我尝试安装&通过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 Library
复选框即可解决问题。
果然,我的图书馆计划(MyLib)已选中此复选框,因此我取消选中它,我不再在控制台中收到此错误,但随后我开始获得运行时NullPointerExceptions。
这清楚地表明我的项目设置/配置存在问题(虽然它构建良好)但是为了找到它的内容,我相信我需要更多地了解这个令人困惑的复选框:
Is Library
复选框已选中,但它们都没有显示MyLib展示的问题。那么,检查或不检查“IsLibrary”?Is Library
复选框?从2年前那个线程的正确答案是否仍然有效?答案 0 :(得分:2)
我记得遇到类似于你的问题,这让我疯了。我还认为取消选中项目 Is Library 复选框可以解决问题,但实际上并没有解决问题。
经过大量的失去工作后,我找到了罪魁祸首:项目.classpath
中的一个额外的,多余的,邪恶的,完全误导和破坏性的线:
<classpathentry kind="src" path="/RogueProjLib"/>
(我不知道它是如何偷偷摸摸的)
删除后,“无法找到RogueProjLib.apk!”消失,项目已安装并运行正常,选中 Is Library 复选框!< / p>
基于此,我将回答您的问题如下:
.classpath
...是的,请检查是图书馆。希望这有帮助。