相关疑难解决方法(0)

错误:在项目':app'上找不到属性'assembleDebug'

我正在使用'com.android.tools.build:gradle:2.2.0-alpha6'和Android Studio 2.2 Preview 6.在Gradle 2.1.0上构建运行完全正常,但为了启用即时运行,它要求我更新Gradle插件.

在更新Gradle插件时,构建显示"Error:Could not find property 'assembleDebug' on project ':app'".我已经尝试过清理.gradle.idea重新加载项目,但没有任何效果.

请帮忙.

android gradle build.gradle android-studio-2.2

25
推荐指数
2
解决办法
1万
查看次数

无法为项目获取未知属性'assembleRelease'

将Android Studio更新为2.2版并将gradle插件更新为2.2.0后,出现以下错误:

错误:(32,1)评估项目':jobdispatcher'时出现问题.无法为org.gradle.api.Project类型的项目':jobdispatcher'获取未知属性'assembleRelease'.

问题出在导入的jobdispatcher模块的build.gradle文件中:

task aar(dependsOn: assembleRelease)
Run Code Online (Sandbox Code Playgroud)

我可以做些什么改变来解决这个问题?

请注意,此问题与此处报告的内容非常相似,但仍有些不同.

android gradle android-studio-2.2

21
推荐指数
3
解决办法
2万
查看次数

最好在Gradle中使用任务依赖项或task.doLast吗?

用Gradle构建我的最终输出文件后,我想做两件事.更新本地version.properties文件并将最终输出final复制到某个特定目录以进行存档.假设我已经有2种方法实现的正是我刚才描述的那些,updateVersionProperties()archiveOutputFile().

我知道想知道最好的方法是什么......

备选方案A:

assembleRelease.doLast {
    updateVersionProperties()
    archiveOutputFile()
}
Run Code Online (Sandbox Code Playgroud)

备选方案B:

task myBuildTask(dependsOn: assembleRelease) << {
    updateVersionProperties()
    archiveOutputFile()
}
Run Code Online (Sandbox Code Playgroud)

在这里,我将调用myBuildTask而不是assembleRelease,如替代A.

推荐哪种方式,为什么?一个优于另一个有什么优势吗?想请一些澄清... :)

gradle build.gradle

12
推荐指数
1
解决办法
9421
查看次数

assembleDebug.dependsOn不工作

首先:这不是重复的

错误:在项目':app'上找不到属性'assembleDebug'

问题:

自从更新到Android Studio 2.2(gradle插件2.2)以来,您无法再以此方式完成任务assembleDebugassembleRelease依赖于新任务:

assembleDebug.dependsOn 'checkstyle'

本期更多细节

它会给您以下错误:

错误:无法为org.gradle.api.Project类型的项目':app'获取未知属性'assembleDebug'.

android android-gradle-plugin

4
推荐指数
1
解决办法
3888
查看次数

如何在Gradle中的buildType上添加条件afterEvaluate

我在build.gradle文件的末尾有这个代码:

         project.afterEvaluate {

            // If you add/change build types, you have to add to/change
            // these task names.
            mergeDebugAssets.dependsOn project.tasks.getByName('downloadLicenses')
            mergeReleaseAssets.dependsOn project.tasks.getByName('downloadLicenses')

        }
Run Code Online (Sandbox Code Playgroud)

请参阅:将生成的第三方许可证复制到资产以获取完整代码

这曾经工作正常(无论设置了哪个buildType),但如果将我的依赖项更新到最新版本,则会触发异常(使用buildType ='debug'构建时):

Could not get unknown property 'mergeReleaseAssets' for project ':application'

我的想法是,可能将此块拆分为两个并将它们置于buildTypes配置下.这不起作用,因为它试图无论如何评估代码并崩溃.

有任何想法吗?

更新1:根本原因? https://code.google.com/p/android/issues/detail?id=219732

更新2:一个可怕的解决方法:

try {
    mergeDebugAssets.dependsOn project.tasks.getByName('downloadLicenses')
} catch (Exception e) {
    // Expected when building variant Release
}
try {
    mergeReleaseAssets.dependsOn project.tasks.getByName('downloadLicenses')
} catch (Exception e) {
    // Expected when building variant Debug
}
Run Code Online (Sandbox Code Playgroud)

android gradle android-gradle-plugin

1
推荐指数
2
解决办法
3188
查看次数