无法获取未知属性“manifestOutputDirectory”

Posted

技术标签:

【中文标题】无法获取未知属性“manifestOutputDirectory”【英文标题】:Could not get unknown property 'manifestOutputDirectory' 【发布时间】:2021-01-30 23:43:25 【问题描述】:

我正在尝试使用 android Studio “制作项目”,但出现此错误:

任务“:myApp:processGoogleDebugManifest”执行失败。

无法获取 com.android.build.gradle.tasks.ProcessMultiApkApplicationManifest 类型的任务“:myApp:processGoogleDebugManifest”的未知属性“manifestOutputDirectory”。

有什么帮助吗?

编辑:我更新到 gradle v6.5 和插件 v4.1.0 后发生此错误。如果我恢复到 gradle v6.1.1 和插件 v4.0.0,错误就会消失。

【问题讨论】:

【参考方案1】:

我今天遇到了同样的问题,在我的情况下,它是由华为的 AG Connect 插件的过时版本引起的。我使用的是com.huawei.agconnect:agcp:1.2.1.301,但当我将其更新为com.huawei.agconnect:agcp:1.4.1.300 时,问题已解决。

但如果华为的插件不是您遇到的问题,您可以通过运行gradle--stacktrace 选项来调试问题,以查看问题的根源。在 Android Studio 中,您可以在 Settings/Build, Execution, Deployment/Compiler/Command-line options 中为 gradle 添加命令行选项。

【讨论】:

这正是问题所在 :) 我使用的是 com.huawei.agconnect:agcp:1.3.1.300。更新到 1.4.1.300 修复了它!谢谢! 同样的问题,谢谢! 更新到 1.4.2.300 修复了它 classpath 'com.huawei.agconnect:agcp:1.4.2.301' 也有效 最新版本为 com.huawei.agconnect:agcp:1.5.1.300【参考方案2】:

这解决了我同样的问题:

在项目级别的 build.gradle 中,替换为:

classpath 'com.huawei.agconnect:agcp:1.3.1.300'

用这个:

classpath 'com.huawei.agconnect:agcp:1.4.1.300'

参考:https://github.com/Tencent/tinker/issues/1471#issuecomment-710777366

【讨论】:

【参考方案3】:

如果您使用的是 bugsnag,请替换以下行

classpath 'com.bugsnag:bugsnag-android-gradle-plugin:4.+'

与:

classpath 'com.bugsnag:bugsnag-android-gradle-plugin:5.+'

更多详情,请参阅本期:Fails with AGP 4.1.0-alpha04 和 this comment。

【讨论】:

这帮助我弄清楚了为什么我无法在最新版本的 React Native 64.2 上遇到错误。谢谢!【参考方案4】:

我在这里写它是因为这个解决方案节省了我的时间:

我们可以通过简单地替换引用来解决这个问题

manifestOutputDirectory

通过

multiApkManifestOutputDirectory
enter code here

在你的 gradle 任务中

例如:

android.applicationVariants.all  variant ->
    variant.outputs.all  output ->
        output.processManifest.doLast  task ->
            def outputDir = multiApkManifestOutputDirectory.asFile.get()
            String manifestMergerpath = "$outputDir/AndroidManifest.xml"
            writeManifest(manifestMergerpath, placeholders)
        
    
  

【讨论】:

你好在哪里替换它?

以上是关于无法获取未知属性“manifestOutputDirectory”的主要内容,如果未能解决你的问题,请参考以下文章

无法为依赖类型的对象获取未知属性“实现”

无法获取未知属性“PLAY_SERVICES_VERSION”

Android Studio:无法获取未知属性“kotlin_version”

无法为 SigningConfig_Decoratedname=debugY 获取未知属性“RELEASE_STORE_PASSWORD”

无法获取 gradle build android studio 类型对象的未知属性

无法为 BuildType_Decorated 获取“applicationVariants”的未知属性