android gradle本地路径不存在

时间:2015-05-05 12:34:21

标签: android android-studio build gradle

每次运行我的应用程序时,versionName在Manifest文件中递增。 20389 表示旧版本名称,20390是递增编号。

enter image description here

项目已成功构建,如 BUILD SUCCESSFUL 。但问题是为什么Android studio会缓存以前的apk版本。这是错误:

  

目标设备:lge-nexus_5-061642fd00511249   正在上传文件       本地路径:H:\ customFolder \ app \ build \ outputs \ apk \ MyAppName-0.6.200_20383-debug.apk       远程路径:/data/local/tmp/com.example.app   本地路径不存在。

当你在设备上运行应用程序时注意到,android studio尝试安装 20383 版本的apk。这是错误的。谁能帮助我?我已经googeled并看到了link

以下是我可以使用gradle脚本更改清单文件的方法:

def updateRevisionNumber () {//autoIncrement Version Name
  def currentVersion = getVersionName();
  def currentRevisionInManifest =           currentVersion.substring(currentVersion.indexOf("_")+1);
  def lastRevision = Integer.parseInt(currentRevisionInManifest) + 1;
  println("currentRevisionInManifest: " + currentRevisionInManifest);
  println("lastRevision: " + lastRevision);

  def oldText = manifestFile.getText();
  def changedText =      oldText.replace(currentRevisionInManifest,lastRevision+"");
  manifestFile.setText(changedText);}

1 个答案:

答案 0 :(得分:3)

您可以在清单的android部分覆盖版本名称,而不是在构建期间编辑清单文件:

android {
    ...
    defaultConfig {
        versionName someScriptToComputeVersionName()
        ...

至少有两个很好的理由这样做:

  • 构建过程不会更改您的源代码(即不会修改AndroidManifest.xml - 至少不会修改可编辑源中的AndroidManifest.xml)
  • Android Studio很有可能会很开心。

现在你的问题是正确定义函数someScriptToComputeVersionName(),这取决于你。

IMO,简单地增加一个数字可能不是最好的选择,如果您根据VCS版本号构建版本名称,您应该寻求解决方案。