gradle插件升级后无法解析DefaultManifestParser

时间:2017-04-28 09:16:30

标签: android gradle build android-gradle android-build

我正在尝试在Android Studio中编译AndroidCaldavSyncAdapter项目。它之前甚至有效,但在从/voitures/?make=bmw升级到/voitures/make/bmw后,gradle插件版本停止工作。现在我收到了这个错误:

com.android.tools.build:gradle:1.5.0

和     

中的com.android.tools.build:gradle:2.3.0
  Error:(34, 0) A problem occurred evaluating project ':ACalDAV'.

以下是cannot resolve symbol 'builder'文件:

import com.android.builder.core.DefaultManifestParser

我尝试过无效的缓存,但这并没有改变任何东西。

1 个答案:

答案 0 :(得分:5)

这种情况发生了,因为DefaultManifestParser的签名已经改变:现在它期望manifestFile作为参数。

在Android Gradle Plugin version 1.5.0中,没有为DefaultManifestParser明确提供构造函数,这意味着有一个空构造函数。这导致表达式def manifestParser = new DefaultManifestParser()正常执行。

在Android Gradle Plugin version 2.2.0中,构造函数的签名已更改为以下内容:

public DefaultManifestParser(@NonNull File manifestFile)

这意味着,应该执行build.gradle文件中的以下更改:

def manifestParser = new DefaultManifestParser(android.sourceSets.main.manifest.srcFile)
versionName = manifestParser.getVersionName()