0

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

假设我的旧应用是 A,新应用是 B。

如果我只安装 A,A 工作正常。

然后,当我安装使用 A 作为库项目的 B 时(在将项目 A 勾选为“isLibrary”之后),原来的 A 停止在设备上工作,但 B 工作正常。

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

似乎当A作为“库项目”包含到另一个应用程序中,并在原来的“A”之后安装时,原来的“A”不知何故失效了!!!(但反之则不存在问题)

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

我没有创建库项目 C 的原因是因为涉及到所有重构,而 Eclipse 在我的案例中没有很好地重新命名所有内容。

4

1 回答 1

1

查看官方开发指南管理项目 - 图书馆项目

但是,库项目与标准 Android 应用程序项目的不同之处在于,您不能将其直接编译为自己的 .apk 并在 Android 设备上运行。同样,您不能将库项目导出到自包含的 JAR 文件,就像对真正的库所做的那样。相反,您必须通过在依赖应用程序中引用库并构建该应用程序来间接编译库。


回到你的问题:

如果我只安装 A,A 工作正常。

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

然后,当我安装使用 A 作为库项目的 B 时(在将项目 A 勾选为“isLibrary”之后),原来的 A 停止在设备上工作,但 B 工作正常。

A现在改为Library Project(isLibrary设置勾选),此时不再有A.apk,只有B.apk(与A编译并在构建B.apk时合并)被编译、安装和工作。

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

如果 A 是库项目,像 Eclipse 这样的 IDE 不允许您直接在 Emulator 或真机上编译、安装和运行它。我想你把 A 改回应用程序项目(isLibrary 设置未勾选),所以 A.apk 再次被编译、安装和工作。

似乎当 A 作为“库项目”包含到另一个应用程序中,并在原来的“A”之后安装时,原来的“A”不知何故失效了!!!(但反之则不存在问题)

基本正确,查看官方开发指南了解详细信息。

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

否和是,如果您想将项目 A 和 B 作为应用程序项目,则需要库项目 C(以便您可以在仿真器或真实设备上编译、安装和运行它们)。

于 2012-04-21T02:53:35.003 回答