Android Studio 3.0 Canary 2:找不到属性“android:versionCode”

35

我已将Android Studio更新至最新的canary版本,但现在无法运行我的应用程序。

每次尝试构建项目时,都会出现以下错误:

Error:F:\...\**app_name**\app\build\intermediates\instant-run-support\debug\slice_0\AndroidManifest.xml:2 attribute 'android:versionCode' not found

我试图手动打开该文件,属性显然存在:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="****"
      android:versionCode="1"
      android:versionName="1.0"
      split="lib_slice_0_apk">
</manifest>

我已经尝试过清理项目、无效化缓存、重启Android Studio,但都没有帮助。

这是我的build.gradle (app)文件:

apply plugin: 'com.android.application'

apply plugin: 'kotlin-android'

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.3"
    defaultConfig {
        applicationId "****"
        minSdkVersion 16
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
    compile 'com.android.support:appcompat-v7:25.3.1'
    testCompile 'junit:junit:4.12'
    compile 'com.android.support.constraint:constraint-layout:1.0.2'
    compile 'com.android.support:design:25.3.1'
    compile 'com.android.support:cardview-v7:25.3.1'
    compile 'com.squareup.picasso:picasso:2.5.2'
}

3
我有同样的问题! - Hoornet
升级后出现了同样的问题。 - Mohamed ALOUANE
1
将以下代码添加到清单文件中,即可在不禁用InstantRun的情况下成功运行:package="..." android:versionCode="1" android:versionName="1.0" > - reinaldomoreira
即使我在<manifest>中明确添加了versionCodeversionName,有时仍会出现错误。然后在Gradle项目视图中单击刷新所有Gradle项目可以解决问题。 - TmTron
15个回答

16

这个问题与Instant Run相关。解决方法:在文件->设置/首选项中禁用它。这将至少允许你在AS的Canary版本中运行应用程序。


1
已经为我修复了,谢谢。希望有人能向谷歌报告此问题。 - Motassem Kassab
@LordFlash 是的,我提到了那个。 - Alex Newman
另外,评论中的@Viper Alpha似乎有另一种选择。不确定他的解决方案是否会影响任何与项目相关的事情。 - Alex Newman

5

这个bug已经在Android Studio 3.0 Canary 6中解决,只需更新Android Studio和所有的SDK组件并重新启动Android Studio即可。

测试环境:

构建版本:AI-171.4163606,于2017年7月7日构建 JRE: 1.8.0_152-release-884-b01 amd64 JVM:由JetBrains s.r.o提供的OpenJDK 64位服务器虚拟机 Windows 10 10.0


4

对我而言,仅仅清除缓存就解决了问题。

文件 > 清除缓存并重启

无需禁用即时运行或手动删除任何构建文件夹。


禁用即时运行是解决方案,伙计。 - Rishav

3

对我来说有效的方法是结合Robin和SamboyCoding所说的方法。

  1. 从构建菜单中清除项目
  2. 从构建菜单中重新构建项目

然后我就可以毫无问题地启动应用程序进行测试。


2

在Android Studio 3.0 Canary 2中,我最快的解决方法是添加versionCodeversionName属性。当出现错误时,只需将其更改为任何其他值(例如,从1.0更改为1.1然后再改回来)。然后应用程序就可以正常启动。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:tools="http://schemas.android.com/tools"
          package="com.XXX"
          android:versionCode="1"
          android:versionName="1.0">

2

对我有效的方法是进入我的项目文件夹,删掉“build”文件夹,以强制gradle重新编译所有内容。我还删除了“gradle”文件夹,但需要手动重新创建它,因为AS没有这样做,但我不认为是这个解决了问题。


1
删除build文件夹没有帮助。我刚试过了。 - Alex Newman

2

我也遇到过这个问题。我尝试重新构建项目或稍微更改build.gradle文件(例如更改versionName),然后同步,大多数情况下问题就暂时解决了。


1
截至2017年6月9日,Android Studio 3.0 Canary 3仍存在此错误。尝试了所有提到的修复方法后,有效的方法是:
  1. 清理项目
  2. 构建项目
  3. 禁用/重新启用即时运行功能
  4. 或者
  5. 重新加载Android Studio。
如果出现错误-建议通过帮助>报告即时运行问题..向Google发送报告,并在群组中创建一个错误报告。不要忘记链接这个StackOverlow页面-也许这样Google会快速修复这个烦人的错误。

0

我遇到了同样的问题。所以我尝试使用稳定版本2.3.1的Android Studio。然后出现一个问题,询问我是否要使用Android Studio的SDK,我选择了这个选项。

尝试运行应用程序时,出现了Gradle错误,要求最低Android Studio 3.0。

我再次启动Android Studio 3.0 C2,关于SDK的问题再次出现,但是然后应用程序编译成功,versionCode错误消失了。


0
每次我都会遇到以下错误:

Error:D:\StudioProjects\yoda\app\build\intermediates\instant-run-support\debug\slice_0\AndroidManifest.xml:2 attribute 'android:versionCode' not found

我想删除D:\StudioProjects\yoda\app\build文件夹,然后选择Build\Rebuild Project,一切就会变得正常。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接