Android Build失败:无法获得项目的未知属性“ assembleDebug”

时间:2018-07-24 05:38:34

标签: android gradle android-gradle android-gradle-3.1.0

我需要创建Jar并复制到lib文件夹,这是在以下任务中完成的:

task copyJarToLib(type: Copy, dependsOn: 'createJar') {
    from "build/libs/lib1.jar"
    from "build/libs/lib2.jar"
    into "../App/libs/"
}

我必须在apk生成后执行此操作。因此,我在module-app build.gradle的末尾调用以下指令:

assembleDebug.finalizedBy(copyJarToLib)

将gradle插件升级到3.1.0,并将gradle升级到4.4后,观察到问题。 Gradle 2.3可以很好地实现相同的实现。

2 个答案:

答案 0 :(得分:0)

在Volley源代码中找到的 ant 是一种简便的方法。将以下代码添加到 custom_rules.xml ,然后使用ant jar

进行构建
<?xml version="1.0" encoding="UTF-8"?>
<project name="volley-rules" default="help">

  <!-- A rule to generate the JAR for inclusion in an Android
       application. Output file will be bin/volley.jar -->
  <target name="jar" depends="-compile">
    <jar destfile="bin/volley.jar"
         basedir="bin/classes" />
  </target>
</project>

如果这不能解决您的问题,您也可以检查此链接-> Create an Android Jar library for distribution

答案 1 :(得分:0)

如果要在构建结束时执行某些操作,可以按以下步骤进行操作:

gradle.buildFinished {

    copy {
        from "build/libs/lib1.jar"
        from "build/libs/lib2.jar"
        into "../App/libs/"
    }
}

如果要在构建apk之前执行任务,则可以:

afterEvaluate {
    project.tasks.findByName('preDebugBuild').dependsOn(':<module>:copyJarToLib')
}