xml 更改后构建变体的 Android Studio 陈旧 APK

标签 android android-studio android-xml

这是一个非常奇怪的问题。今天 AS (1.4) 停止在我的项目中正确地重新创建调试 apk:

  • 运行项目时,任何XML 更改都不会反射(reflect)在代码中
  • 对 Java 代码的更改正在传播,即使 XML 更改没有传播也是如此
  • 清理然后点击运行似乎可以解决问题,每次都会成功创建更新的 APK。
  • 我的项目中有两个构建变体,这个问题只影响其中一个
  • 我正在使用 Genymotion,但问题也存在于常规模拟器和硬件上。
  • 我怀疑 xml 文件上有某种锁。例如,如果我重命名一个文件并点击运行,更改就会传播。但是检查 R.java 会显示旧文件名和新文件名的条目 - 旧文件根本没有被清除/刷新。
  • 我正在测试的 xml 布局现在已被剥离回具有背景颜色的空白相对布局。颜色没有在应该更新的时候更新。

我对构建过程不太了解,所以我尝试的只是删除构建文件夹,重新导入项目以及 Android Studio 上的旧重启/无效缓存。关于可能导致这种奇怪行为的原因或如何解决它的任何建议?

编辑: 很难确定这背后的行为 - 有时我注意到它始终只影响某些 xml 文件。看起来这个人有同样的问题:Android Studio project build issue

我花了几个小时从头开始重新安装 Android Studio,但问题仍然存在。

最佳答案

Daniel,我自己也确实注意到了这个问题。似乎某些更改根本不会传播,除非 ADB 检测到该应用程序当前未安装在目标设备上。

免责声明:这是一种解决方法,而不是对行为的解释,但它对我有用。为了解决这个问题,我将我的运行配置配置为在再次安装之前卸载有问题的包。请注意,卸载 APK 显然会影响数据库、首选项中的持久数据等,因此如果您的开发过程依赖于这些,请不要使用它。

步骤:(来自 here )

  1. 在 Android Studio 中,点击“运行”按钮左侧的下拉列表,然后选择“编辑配置...”
  2. 点击 Android 应用程序下的应用程序,然后在常规选项卡中找到标题“启动前”
  3. 点击+按钮,选择运行外部工具,点击弹出窗口中的+按钮。
  4. 提供一些名称(例如 adb uninstall)和描述,然后输入 adb在程序中:和 uninstall <your-package-name>在参数中: 在弹出窗口中单击“确定”时,确保选择了新项目。

注意:如果您的 PATH 环境变量中没有 adb,请在 Program: 字段中提供 adb 的完整路径(例如/home/user/android/sdk/platform-tools/adb)。

再次抱歉,这不是对问题本身的解释,但这确实为我解决了问题。

让我知道它是如何为您服务的。

关于xml 更改后构建变体的 Android Studio 陈旧 APK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33324668/

相关文章:

java - 需要从 AsyncTask 返回值

java - 如何使用变量访问 getStringArray

适用于 Pre-Lollipop 设备的具有弯曲背景的 Android Ripple 按钮

安卓工作室 : Failure [INSTALL_FAILED_USER_RESTRICTED]

android-studio - Android Studio 运行时错误 stub !在 com.amazon.device.messaging.ADMMessageReceiver.<init>()

Android - 如何使 TextInputEditText 的高度恰好为 2 行?

Android mancj.MaterialSearchBar : Using reflection to override and change some API layout and widgets, 字体系列、粗体和填充

java - 在 Android 中查找并暂停播放音频的任务

android - 更改 PopupMenu 中单个项目的文本颜色

android - 我们可以解析数组元素和来自 android xml 数组的值吗