这是一个非常奇怪的问题。今天 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 )
- 在 Android Studio 中,点击“运行”按钮左侧的下拉列表,然后选择“编辑配置...”
- 点击 Android 应用程序下的应用程序,然后在常规选项卡中找到标题“启动前”
- 点击+按钮,选择运行外部工具,点击弹出窗口中的+按钮。
- 提供一些名称(例如 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/