【问题标题】:Unity Gradle build failed to find Build Tools revision 28.0.0Unity Gradle 构建未能找到构建工具修订版 28.0.0
【发布时间】:2018-08-25 16:39:46
【问题描述】:

我已经为这个问题苦苦挣扎好几天了,我似乎无法找到解决它的方法,这是完整的错误:

CommandInvokationFailure: Gradle build failed. 
C:/Program Files/Java/jdk1.8.0_131\bin\java.exe -classpath "C:\Program Files\Unity2017.2\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\gradle\lib\gradle-launcher-2.14.jar" org.gradle.launcher.GradleMain "assembleDebug"

stderr[

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring root project 'gradleOut'.
> failed to find Build Tools revision 28.0.0

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
]
stdout[

BUILD FAILED

Total time: 2.877 secs
]
exit code: 1
UnityEditor.Android.Command.WaitForProgramToRun (UnityEditor.Utils.Program p, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)
UnityEditor.Android.Command.Run (System.Diagnostics.ProcessStartInfo psi, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)
UnityEditor.Android.GradleWrapper.RunJava (System.String args, System.String workingdir, UnityEditor.Android.Progress progress)
Rethrow as GradleInvokationException: Gradle build failed
UnityEditor.Android.GradleWrapper.RunJava (System.String args, System.String workingdir, UnityEditor.Android.Progress progress)
UnityEditor.Android.GradleWrapper.Run (System.String workingdir, System.String task, UnityEditor.Android.Progress progress)
UnityEditor.Android.PostProcessor.Tasks.BuildGradleProject.Execute (UnityEditor.Android.PostProcessor.PostProcessorContext context)
UnityEditor.Android.PostProcessor.PostProcessRunner.RunAllTasks (UnityEditor.Android.PostProcessor.PostProcessorContext context)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

这是我的 gradle.build 内容:

// GENERATED BY UNITY. REMOVE THIS COMMENT TO PREVENT OVERWRITING WHEN EXPORTING AGAIN
buildscript {
    repositories {
        jcenter()
    }

    dependencies {

        classpath 'com.android.tools.build:gradle:2.1.0'
    }
}

allprojects {
   repositories {
      flatDir {
        dirs 'libs'
      }
   }
}

apply plugin: 'com.android.application'

dependencies {
    compile 'com.android.support:multidex:1.0.1'
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile(name: 'android.arch.core.runtime-1.1.0', ext:'aar')
    compile(name: 'android.arch.lifecycle.livedata-core-1.1.0', ext:'aar')
    compile(name: 'android.arch.lifecycle.runtime-1.1.0', ext:'aar')
    compile(name: 'android.arch.lifecycle.viewmodel-1.1.0', ext:'aar')
    compile(name: 'cardview-v7-25.3.1', ext:'aar')
    compile(name: 'com.android.support.animated-vector-drawable-28.0.0-alpha1', ext:'aar')
    compile(name: 'com.android.support.appcompat-v7-28.0.0-alpha1', ext:'aar')
    compile(name: 'com.android.support.asynclayoutinflater-28.0.0-alpha1', ext:'aar')
    compile(name: 'com.android.support.cardview-v7-28.0.0-alpha1', ext:'aar')
    compile(name: 'com.android.support.coordinatorlayout-28.0.0-alpha1', ext:'aar')
    compile(name: 'com.android.support.cursoradapter-28.0.0-alpha1', ext:'aar')
    compile(name: 'com.android.support.customtabs-28.0.0-alpha1', ext:'aar')
    compile(name: 'com.android.support.customview-28.0.0-alpha1', ext:'aar')
    compile(name: 'com.android.support.documentfile-28.0.0-alpha1', ext:'aar')
    compile(name: 'com.android.support.drawerlayout-28.0.0-alpha1', ext:'aar')
    compile(name: 'com.android.support.interpolator-28.0.0-alpha1', ext:'aar')
    compile(name: 'com.android.support.loader-28.0.0-alpha1', ext:'aar')
    compile(name: 'com.android.support.localbroadcastmanager-28.0.0-alpha1', ext:'aar')
    compile(name: 'com.android.support.percent-28.0.0-alpha1', ext:'aar')
    compile(name: 'com.android.support.print-28.0.0-alpha1', ext:'aar')
    compile(name: 'com.android.support.recyclerview-v7-28.0.0-alpha1', ext:'aar')
    compile(name: 'com.android.support.slidingpanelayout-28.0.0-alpha1', ext:'aar')
    compile(name: 'com.android.support.support-compat-28.0.0-alpha1', ext:'aar')
    compile(name: 'com.android.support.support-core-ui-28.0.0-alpha1', ext:'aar')
    compile(name: 'com.android.support.support-core-utils-28.0.0-alpha1', ext:'aar')
    compile(name: 'com.android.support.support-fragment-28.0.0-alpha1', ext:'aar')
    compile(name: 'com.android.support.support-media-compat-28.0.0-alpha1', ext:'aar')
    compile(name: 'com.android.support.support-v4-28.0.0-alpha1', ext:'aar')
    compile(name: 'com.android.support.support-vector-drawable-28.0.0-alpha1', ext:'aar')
    compile(name: 'com.android.support.swiperefreshlayout-28.0.0-alpha1', ext:'aar')
    compile(name: 'com.android.support.viewpager-28.0.0-alpha1', ext:'aar')
    compile(name: 'com.github.vungle.vungle-android-sdk-5.3.0', ext:'aar')
    compile(name: 'com.google.ads.mediation.unity-2.1.2.0', ext:'aar')
    compile(name: 'com.google.ads.mediation.vungle-5.3.0.0', ext:'aar')
    compile(name: 'com.google.android.gms.play-services-ads-11.8.0', ext:'aar')
    compile(name: 'com.google.android.gms.play-services-ads-license-11.8.0', ext:'aar')
    compile(name: 'com.google.android.gms.play-services-ads-lite-11.8.0', ext:'aar')
    compile(name: 'com.google.android.gms.play-services-ads-lite-license-11.8.0', ext:'aar')
    compile(name: 'com.google.android.gms.play-services-base-11.8.0', ext:'aar')
    compile(name: 'com.google.android.gms.play-services-base-license-11.8.0', ext:'aar')
    compile(name: 'com.google.android.gms.play-services-basement-11.8.0', ext:'aar')
    compile(name: 'com.google.android.gms.play-services-basement-license-11.8.0', ext:'aar')
    compile(name: 'com.google.android.gms.play-services-gass-11.8.0', ext:'aar')
    compile(name: 'com.google.android.gms.play-services-gass-license-11.8.0', ext:'aar')
    compile(name: 'com.google.android.gms.play-services-gcm-11.8.0', ext:'aar')
    compile(name: 'com.google.android.gms.play-services-gcm-license-11.8.0', ext:'aar')
    compile(name: 'com.google.android.gms.play-services-iid-11.8.0', ext:'aar')
    compile(name: 'com.google.android.gms.play-services-iid-license-11.8.0', ext:'aar')
    compile(name: 'com.google.android.gms.play-services-location-11.8.0', ext:'aar')
    compile(name: 'com.google.android.gms.play-services-location-license-11.8.0', ext:'aar')
    compile(name: 'com.google.android.gms.play-services-tasks-11.8.0', ext:'aar')
    compile(name: 'com.google.android.gms.play-services-tasks-license-11.8.0', ext:'aar')
    compile(name: 'com.sglib.easymobile.easy-mobile-1.0.2', ext:'aar')
    compile(name: 'com.unity3d.ads.unity-ads-2.1.2', ext:'aar')
    compile(name: 'common', ext:'aar')
    compile(name: 'constraint-layout-1.0.2', ext:'aar')
    compile(name: 'GoogleAIDL', ext:'aar')
    compile(name: 'GooglePlay', ext:'aar')
    compile(name: 'onesignal-unity', ext:'aar')
    compile(name: 'percent-25.3.1', ext:'aar')
    compile(name: 'unity-ads', ext:'aar')
    compile project(':answers')
    compile project(':beta')
    compile project(':crashlytics')
    compile project(':crashlytics-wrapper')
    compile project(':fabric')
    compile project(':fabric-init')
    compile project(':GoogleMobileAdsPlugin')
    compile project(':OneSignalConfig')
}

android {
    compileSdkVersion 21
    buildToolsVersion '28.0.0'

    defaultConfig {
        multiDexEnabled true
        targetSdkVersion 21
        applicationId 'com.chorusworldwide.upjump'
    }

    lintOptions {
        abortOnError false
    }

    aaptOptions {
        noCompress '.unity3d', '.ress', '.resource', '.obb'
    }


    buildTypes {
        debug {
            minifyEnabled false
            useProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-unity.txt'
            jniDebuggable true
        }
        release {
            minifyEnabled true
            useProguard true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-unity.txt'

        }
    }

}

由于某种原因,它一直将其 buildToolsVersion 覆盖为“'28.0.0'”,即使我专门将构建设置设置为:

我还将自己的 gradle.build 文件添加到 Plugin/Android,这是相同的文件,但 BuildToolsVersion 设置为 27.0.0,但是,位于项目内 Temp 文件夹中的 build.gradle 文件仍在自行重置到“28”,

我还将自己的 gradle.build 文件添加到 Plugin/Android,这是相同的文件,但 BuildToolsVersion 设置为 27.0.0,但是,位于项目内 Temp 文件夹中的 build.gradle 文件仍在自行重置到“28”, 最后是我的 SDK 管理器的一些截图:

为 Android (P) 部分安装是因为这个(我不必全部安装它们不是吗?):

SDK 工具:

更新:从构建工具中删除 28.0.0-rc1 后,build.gradle 开始使用版本 27 构建,但现在出现新错误:

CommandInvokationFailure: Gradle build failed.
C:/Program Files/Java/jdk1.8.0_131\bin\java.exe -classpath "C:\Program Files\Unity2017.2\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\gradle\lib\gradle-launcher-2.14.jar" org.gradle.launcher.GradleMain "assembleDebug"
stderr[
C:\Projects\UpJump\Temp\gradleOut\build\intermediates\exploded-aar\com.android.support.appcompat-v7-28.0.0-alpha1\res\values-v28\values-v28.xml:5:5-8:13: AAPT: No resource found that matches the given name (at 'dialogCornerRadius' with value '?android:attr/dialogCornerRadius').

FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':processDebugResources'.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'D:\DevTools\New_SDK\build-tools\27.0.0\aapt.exe'' finished with non-zero exit value 1
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
]

【问题讨论】:

  • 尝试从Android SDK中移除构建工具28.0.0-rc1。
  • @Shaman 刚刚做了,请检查 OP 更新。谢谢!
  • 这是让我找到解决方案的步骤之一,但我还需要一个:1)在您的项目中,转到编辑>查找>在路径中查找... 2)搜索“ buildToolsVersion" 不带引号。 3) 将版本“buildToolsVersion '28”的所有实例替换为“buildToolsVersion '27”。 4) 利润。
  • @AWrightIV 很抱歉回复晚了,但是“find”并没有为我做任何事情,当我选择它时什么都没有显示,我错过了什么吗?
  • @alasipknot 对不起,我应该指定:我的意思是在 Android Studio 中使用 Find。这假设您已经导出了项目,但是如果您在文件系统中的项目目录中搜索“buildToolsVersion”,您仍然可以编辑文件而不导出。您应该找到 build.gradle 文件。如上所述编辑。我之前应该把它作为答案分开,所以我现在就这样做。

标签: android unity3d gradle


【解决方案1】:

AWrightIV's answer 让我大部分时间到达那里。但对我来说,解决方案不那么复杂。我生成了一个 mainTemplate.gradle 文件,当您在播放器设置中打开“使用自定义 gradle 文件”并更改了 buildToolsVersion 行时,Unity 会创建该文件。

Assets/Plugins/Android/mainTemplate.gradle 中的原行:

buildToolsVersion '**BUILDTOOLS**'

新:

buildToolsVersion '27'

【讨论】:

    【解决方案2】:

    解决了!

    我的主要问题在这里:

    查看所有这些 28.0.0-alpha 文件,由于这些文件开始出现问题,我 100% 确定,因为当我回滚时(幸好我使用版本控制),主要区别之一是这些库没有不在那里,我删除了它们,但由于“播放服务解析器”,它们不断回来,所以我认为它与我在我的 Android SDK 中安装的任何版本无关,它与其中一个 100% 相关插件。

    我创建了一个新项目,为 Unity 导入了 GoogleAdsMediation(这是最重要的插件)并做了“解析”的事情,根本没有“28”个文件,所以它不是谷歌插件,我一直在做与我们拥有的所有插件一起使用。 导入 -> 删除所有库 -> 强制解析。 直到我找到罪魁祸首,它是 OneSignal,他们的依赖配置(或其他东西)迫使解析器导入这些“28.0.0-alpha”库,我删除了 OneSignal 的那个版本,导入了一个旧版本(从旧版本的我们的项目)和繁荣!问题解决了:)

    我希望这会有所帮助。

    干杯!

    【讨论】:

    • 我也有这个问题。我发现这个链接 forum.unity.com/threads/2017-3-new-gradle-error.522427> 建议将所有构建工具删除到 26 个。
    • 尽管这是一个直率的决定,但我删除了我的插件文件夹,Android 解析器只下载了它需要的东西。永久解决了这个问题! (我在更新谷歌广告和播放服务资产后开始遇到这个问题)
    【解决方案3】:

    @SawThinkarNayHtoo 提到的类似问题的答案将为您提供大部分帮助。又是那个链接:Importing Vufoira Scene into native android app

    它的要点是您希望在面向 Android 的同时导出您的 Unity 项目。其他地方有关于如何做到这一点的很棒的教程,但这里是上面答案的链接: Export Unity Project to Android Studio

    按照上面的步骤,我还需要一个步骤:

    1. 在 Android Studio 中,打开导出的项目并转到编辑 > 查找 > 在路径中查找...
    2. 搜索不带引号的“buildToolsVersion”。
    3. 将版本“buildToolsVersion '28”的所有实例替换为“buildToolsVersion '27”。

    如有必要,您也可以在不导出的情况下编辑文件。在文件系统中的项目目录中搜索“buildToolsVersion”。您应该找到 build.gradle 文件。如上所述编辑。

    【讨论】:

    • 谢谢你,自从我发布这个已经有一个星期了,我不再强制使用“28”版本,我只是按照你说的做了,我所有的 buildToolsVersion(我有 4总共)是 27.0.1,compileSdkVersion 是 27,依赖项是 gradle:3.0.1,我在构建时仍然遇到类似的错误,我应该将 27.0.1 更改为 27.0.0 吗?谢谢
    • 我的疑问在于这里的依赖关系:pastebin.com/SwmbXNy4 在原生 Android 开发方面,我完全是个菜鸟,你能检查一下是否有任何重复或“未混合”的版本吗?因为现在当我从 Android Studio 构建时,我得到了这个错误:pastebin.com/803GkrLy 知道 multiDexEnabled 设置为 true。再次感谢!
    • 这是一个奇怪的 i.imgur.com/aTPS8qh.png 尽管我的项目根本不涉及 v28,但我仍在获取 android.support v28(最后一个链接中的第一个 3 个 jars)
    • 这里还有一堆:i.imgur.com/ak8M2Wm.png我现在真的很困惑哈哈
    • 好吧,所以,显然 28alpha 的使用与我的 SDK 管理器包含的内容无关,这是由 Unity 内部的“播放服务解析器”引起的,每当发生解析时,它都会下载一堆新库,包括这 28 个 alpha 库:i.imgur.com/dqtl9pX.png
    【解决方案4】:

    我也遇到了同样的问题,在我下载了最新的 29 sdk 构建工具之前我还好。我从我的 sdks 中删除了构建工具,它解决了我的问题

    【讨论】:

      猜你喜欢
      • 2015-12-15
      • 2016-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-31
      • 2020-12-22
      • 2016-08-09
      • 1970-01-01
      相关资源
      最近更新 更多