代码之家  ›  专栏  ›  技术社区  ›  treesAreEverywhere

为什么Android Instant Run几乎每次都在重新编译?

  •  2
  • treesAreEverywhere  · 技术社区  · 10 年前

    我正在给Android Instant Run进行测试。为了测试,我刚刚在“活动”的onResume()中添加了以下行:

    Toast.makeText(this, "test123", Toast.LENGTH_SHORT).show();
    

    现在,当我改变祝酒词的文字并重建时,它会告诉我

    "Instant Run detected that a resource referenced from the AndroidManifest.xml file has changed"
    

    有人能解释这里发生了什么吗?我没有更改任何资源,只更改了Activity java文件中的字符串文字。(我知道我应该在Android btw中使用字符串资源)。

    1 回复  |  直到 10 年前
        1
  •  4
  •   treesAreEverywhere    10 年前

    看起来问题是我的身材。gradle修改Android清单:

    debug {
        ...
        def theVersionNameSuffix = "-debug-" + getCurrentDateTimeString();
        versionNameSuffix theVersionNameSuffix
        ...
    }
    

    由于后缀在每个构建中都不同,这意味着versionName在不同的构建之间发生变化,从而改变了AndroidManifest。

    我已经删除了versionNameSuffix条目,现在它似乎可以工作了。