我如何强制eclipse在每次构建时更新我的​​硬件设备上的apk?

shi*_*ino 9 eclipse android libgdx

如果我更改了一些代码,保存和运行,它会运行程序的最后一个版本,而不是我刚刚保存的版本.我可以更新的唯一方法是清理项目,构建项目,然后运行项目.有没有办法避免这种单调乏味?

yor*_*rkw 4

我花了一些时间创建了两个虚拟项目(一个 Android 和一个 Java)并进行了尝试,最后想出了一个不经常使用但能够解决您的需求的解决方法。

\n

首先,我将进一步解释您的问题(根据我的理解和我的尝试),以便其他人可以更清楚地了解这里发生的情况。

\n

根据评论中的对话:

\n
\n

你能告诉我你在以下设置中有什么吗:project->properties->Builder?\xe2\x80\x93 苏达尔·尼玛兰

\n

@SudarNimalan:我不确定这就是你要问的,但是:有文本显示“为该项目配置构建器”,并且在其下方有一个选项“Java构建器”,已选中(选中) )。\xe2\x80\x93 筱

\n

对于android项目,应该有“Android Resource Manager”,“Android Pre Compiler”,“Java Builder”,“Android Package Builder”这个顺序,你可以添加这些并尝试吗?\xe2\x80\x93 苏达尔·尼玛兰

\n

@SudarNimalan:我欠你一个道歉;我确实有这四个组件。我的“项目”分为 4 个项目 - “core”、“core-android”、“core-desktop”和“core-html”。这有点奇怪,因为我使用 libGDX 项目设置 UI 进行了设置,并且在回答您的问题时我正在查看“核心”项目。我的“core-android”项目拥有全部四个项目(按该顺序),这就是我的问题中存在问题的项目。\xe2\x80\x93 筱

\n
\n

设想:

\n

你有4个项目:

\n
    \n
  • core:一个常规的java项目(这里是常见的纯java代码)
  • \n
  • core-android:Android 应用程序项目。
  • \n
  • core-desktop:与问题无关,因此被忽略。
  • \n
  • core-html:与问题无关,因此被忽略。
  • \n
\n

core-android 项目依赖于 core 项目,通过将 core 添加到 core-android\ 的构建路径(属性 -> Java 构建路径 -> 项目 -> 添加...)和导出列表(属性 -> Java 构建路径) -> 订购和导出)。

\n

问题(不是真的):

\n

更改core中的一些代码并保存它,运行core-android,eclipse安装最后编译的apk,而不是更改后的新apk。

\n

原因:

\n

这是预期的行为,您用来在 core-android 中引用核心项目的方式只会在 core 和 core-android 之间创建一个弱链接(或某种形式),而 core-andorid 的自动构建脚本则不会。不知道核心发生任何变化。你必须清理项目(只需要清理 core-android 项目),以便 Eclipse 可以删除现有的 apk(在 bin 目录下)并重新生成 apk(使用 core 的最新代码更改)。

\n

请参阅下面的 Xav 评论,Android SDK 工具应该能够识别项目构建路径下普通 Java 项目的更改,但目前它不会正常执行此功能。

\n

请注意,如果 core 是一个 Android 库项目,那么没有问题,您的 core-android 项目将感知 core 项目中的任何更改(java 代码、android 资源等),如果 core 仅在 core-android 中使用,这可能也是一个解决方法:将Java项目核心变成Android库项目。

\n

解决方法(Eclipse 链接源):

\n

还有另一种方法(不常用)可以在项目之间添加软链接:

\n
    \n
  1. 首先,您需要从 core-android 的构建路径中删除 core 项目,这也会将其从导出和订单列表中删除。
  2. \n
  3. 右键单击 core-android,选择 Build Path -> Link Source ... 添加 ../core/src 作为链接文件夹位置,添加 src-lib1 作为文件夹名称,最后查看屏幕截图。
  4. \n
\n

这会在 Package Explorer 窗口中的 core-android 下创建一个符号链接 src-lib1 指向 core 的 src foder,在文件系统中,您仍然有两个独立的项目文件夹。现在,如果您更改 core 中的一些代码并运行 core-android,Eclipse 将构建并安装最新的 apk。无需清理 core-android 项目。

\n

链接源窗口:\n在此输入图像描述

\n

Package Explorer 中的最终外观:

\n

在此输入图像描述

\n

您应该始终将正常方法视为首选,毕竟,与我上面描述的不寻常方法相比,手动清理项目并不是什么大问题。

\n

  • 这确实不应该是这样的。从另一个项目引用一个项目意味着主项目(在本例中为 android)会收到所引用项目的更改通知(而不是其构建者)。当通知发生时,我们的构建器可能会出现问题,但它应该可以开箱即用。 (3认同)