2012-04-20 39 views
0

我试图将一个旧应用程序用作新应用程序的库项目。但是,当它们同时安装在设备上时,存在一些问题,发布后我不确定它们是否存在。Android:将一个旧应用程序用作库项目

比方说,我的老应用程序是一个新的应用程序是B.

如果我只安装A,A工程确定。

然后,当我安装B,它使用A作为库项目(在将项目A标记为“isLibrary”之后),原始A停止在设备上工作,但B工作正常。

但是,如果我先安装B,然后A,两者都可以正常工作。

看来,当A被包含为另一个应用程序的“库项目”,并且安装在原始“A”之后时,原来的“A”会以某种方式失效! (但问题不存在相反方向)

这个问题会在发布后消失吗?还是我必须为A和B创建一个库项目C,这将防止这种情况发生?还是这个问题在所描述的情况下根本就不存在(这意味着我完全在做其他错误)?

为什么我没有创建一个库项目C的原因是因为所有的重构都涉及到,而Eclipse在我的情况下并没有很好地重命名所有的东西。

回答

1

查看官方开发指南Managing Projects - Library Project

然而,库项目从在一个标准的Android应用程序项目不同,你不能直接编译到它自己的apk和Android设备上运行。同样,不能像导出真正的库一样将库项目导出为独立的JAR文件。相反,您必须通过引用相关应用程序中的库并构建该应用程序来间接编译库。


回到你的问题:

如果我只安装A,A工程确定。

因为A是一个应用程序项目(isLibrary设置未勾选),所以A.apk被编译,安装和工作。

然后当我安装B,它使用A作为库项目(在将项目A标记为“isLibrary”之后),原始A停止在设备上工作,但B工作正常。

A现在更改为库项目(isLibrary设置勾选),此时没有A.apk,只有B.apk(编译和合并时编译B.apk)编译,安装和工作。

但是,如果我先安装B,然后A,两者都可以正常工作。

如果A是一个库项目,IDE之类的IDE不允许您直接编译,安装并在仿真器或实际设备上运行它。我想你把A改回应用程序项目(isLibrary设置未勾选),那么A.apk就会被再次编译,安装并工作。

看来,当A被包含为另一个应用程序的“库项目”,并且安装在原始的“A”之后,那么原始的“A”会以某种方式失效! (但问题不存在反过来)

基本上是正确的,检查官方开发指南的详细信息。

此问题在发布后会消失吗?还是必须为A和B创建一个库项目C,这会阻止这种情况发生?还是这个问题在所描述的情况下根本就不存在(这意味着我完全在做其他错误)?

不,如果要将项目A和B同时作为应用程序项目(以便可以在仿真器或实际设备上编译,安装和运行它们),则需要库项目C.

相关问题