无法解决包含的外部 gradle 构建文件中的类错误

Can*_*mas 0 java android gradle build.gradle android-gradle-plugin

我想要完成的是将一些常见的任务和功能分组到一个 common.gradle 文件下,并通过简单地调用主 build.gradle 来在不同的项目中重用这些任务和方法:

apply from: 'common.gradle'
Run Code Online (Sandbox Code Playgroud)

我在 common.gradle 文件中有以下方法:

def readPackageNameFromManifest() {
    def manifestParser = new com.android.builder.DefaultManifestParser()
    return manifestParser.getPackage(android.sourceSets.main.manifest.srcFile) 
}
Run Code Online (Sandbox Code Playgroud)

但它一直告诉我:

> Could not compile script 'common.gradle'
 unable to resolve class com.android.builder.DefaultManifestParser 
   @ line 77, column 26.
         def manifestParser = new com.android.builder.DefaultManifestParser()  
Run Code Online (Sandbox Code Playgroud)

当我在 build.gradle 下移动方法时,它不会引起任何问题。

我可能漏掉了一点。我会很感激你的想法。谢谢!

ben*_*n75 6

您必须指示 gradle 您在 common.gradle 中的构建脚本依赖于 android-gradle-plugin。

将此添加到 common.gradle:

buildscript {
    repositories {
       mavenCentral()
    }

    dependencies {
       classpath 'com.android.tools.build:gradle:0.10.+'
    }
}
Run Code Online (Sandbox Code Playgroud)