AirWatch似乎与Gradle 3.0.0-beta1版本的Android插件不兼容。

6

在将我的顶级build.gradle更改为使用Android Plugin for Gradle 3.0.0-beta3以及Gradle 4.1后,AirWatch无法从APK中读取信息(如versionCode和versionName)。

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {

    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.0-beta3'


        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

ext {
    roomVersion = '1.0.0-alpha9'
    supportLibVersion = '26.0.1'
}

这是一个已知的问题吗?是否有解决方法?


这似乎是AW领域中已知的问题。看起来他们已经在路线图上了,但没有确定的日期放入其中。有些人希望9.2.3版本能解决这个问题。 - Brian S
3个回答

8

Airwatch在使用新的AAPT2工具时出现问题,因为与AAPT不同,AAPT2似乎以压缩形式编译Manifest.xml文件。尽管Android Studio 3将AAPT2设置为标准,但您可以通过添加以下行轻松切换回AAPT:

android.enableAapt2=false

在您的项目的gradle.properties文件中解决了这个问题。

这对我有用,添加后,Airwatch现在可以解析清单中的元数据。太棒了!!! - NSNewYorkMets

1

我没有足够的声望来评论,但我想问一下,如果你发现了有关这个主题的任何新信息,因为我们的客户使用AirWatch,我们在更新gradle后遇到了类似的问题。

具体来说,是在从Android Studio 2更新到Android Studio 3之后,从而更改了所有随之而来的gradle内容。


1
我没有找到任何东西,但是即使在使用Android Studio 3的情况下将我的项目更改为使用先前版本的Gradle,AirWatch也能够识别我们的APK。 - juliano.net
有趣。我采用了不同的方法,只是使用Android Studio 2进行编译。必须更改一些gradle内容,但我认为这应该可以解决问题。当我从客户端得到结果时,我会发表另一个评论。 - Antonio Dell

0
截至本文编写时,Airwatch 存在一个限制,即它不会更新使用 Android Gradle 插件 3.0 编译的应用程序。
有两种解决方法。 1. 使用 Gradle 插件 2.3.3 构建 apk 或者 2. 将使用 Gradle 插件 3.0 构建的 apk 作为单独的应用程序上传到控制台。手动定义 App/ID 版本代码并部署。

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