android中app下没build,android – 配置项目’:app’未能找到Build Tools修订版

博主在尝试构建Android项目时遇到了gradle build失败的问题,错误信息指出无法找到Build Tools 24.4.1版本。尽管Android Studio显示已安装该版本,且尝试手动更新SDK和修改local.properties文件也未能解决问题。堆栈跟踪并未提供太多帮助。博客内容深入到DefaultSdkLoader的源代码中,但问题仍未解决。文章详细记录了排查过程,并指出在SDK的build-tools目录下找不到对应的构建工具版本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我的

android gradle构建失败,并显示有用的错误消息

$gradle

FAILURE: Build failed with an exception.

* What went wrong:

A problem occurred configuring project ':app'.

> failed to find Build Tools revision 24.4.1

我查看了Android Studio认为我安装的SDK版本.

osbRb.png

它报告我安装了24.4.1,这与我的build.gradle文件一致.

另外,我尝试使用./android list sdk -a安装sdk; ./android update sdk -a -u -t 1但仍然存在故障.

我甚至尝试过伪造的local.properties文件

sdk.dir=/home/admin/DEADBEEF

这使

$gradle

FAILURE: Build failed with an exception.

* What went wrong:

A problem occurred configuring project ':app'.

> The SDK directory '/home/admin/DEADBEEF' does not exist.

此外,堆栈跟踪似乎没有多大帮助,因为我没有找到此源文件.所以现在我已经开始挖掘0700的DefaultSdkLoader了

$gradle --stacktrace

FAILURE: Build failed with an exception.

* What went wrong:

A problem occurred configuring project ':app'.

> failed to find Build Tools revision 24.4.1

* Try:

Run with --info or --debug option to get more log output.

* Exception is:

org.gradle.api.ProjectConfigurationException: A problem occurred configuring project ':app'.

at org.gradle.configuration.project.LifecycleProjectEvaluator.addConfigurationFailure(LifecycleProjectEvaluator.java:79)

at org.gradle.configuration.project.LifecycleProjectEvaluator.notifyAfterEvaluate(LifecycleProjectEvaluator.java:74)

at org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:61)

at org.gradle.api.internal.project.AbstractProject.evaluate(AbstractProject.java:510)

at org.gradle.api.internal.project.AbstractProject.evaluate(AbstractProject.java:90)

at org.gradle.execution.TaskPathProjectEvaluator.configureHierarchy(TaskPathProjectEvaluator.java:47)

at org.gradle.configuration.DefaultBuildConfigurer.configure(DefaultBuildConfigurer.java:35)

at org.gradle.initialization.DefaultGradleLauncher$2.run(DefaultGradleLauncher.java:125)

at org.gradle.internal.Factories$1.create(Factories.java:22)

at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)

at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:52)

at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:122)

at org.gradle.initialization.DefaultGradleLauncher.access$200(DefaultGradleLauncher.java:32)

at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:99)

at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:93)

at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)

at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:62)

at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:93)

at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:82)

at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:94)

at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)

at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)

at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:43)

at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:28)

at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:78)

at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:48)

at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:52)

at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)

at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)

at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37)

at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)

at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)

at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)

at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)

at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)

at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)

at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)

at org.gradle.util.Swapper.swap(Swapper.java:38)

at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)

at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)

at org.gradle.launcher.daemon.server.health.DaemonHealthTracker.execute(DaemonHealthTracker.java:47)

at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)

at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:66)

at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)

at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)

at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:72)

at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)

at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)

at org.gradle.launcher.daemon.server.health.HintGCAfterBuild.execute(HintGCAfterBuild.java:41)

at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)

at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)

at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:246)

at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54)

at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:40)

Caused by: java.lang.IllegalStateException: failed to find Build Tools revision 24.4.1

at com.android.builder.sdk.DefaultSdkLoader.getTargetInfo(DefaultSdkLoader.java:93)

at com.android.build.gradle.internal.SdkHandler.initTarget(SdkHandler.java:89)

at com.android.build.gradle.BasePlugin.ensureTargetSetup(BasePlugin.java:673)

at com.android.build.gradle.BasePlugin.createAndroidTasks(BasePlugin.java:610)

at com.android.build.gradle.BasePlugin$10$1.call(BasePlugin.java:566)

at com.android.build.gradle.BasePlugin$10$1.call(BasePlugin.java:563)

at com.android.builder.profile.ThreadRecorder$1.record(ThreadRecorder.java:55)

at com.android.builder.profile.ThreadRecorder$1.record(ThreadRecorder.java:47)

at com.android.build.gradle.BasePlugin$10.execute(BasePlugin.java:562)

at com.android.build.gradle.BasePlugin$10.execute(BasePlugin.java:559)

at org.gradle.internal.event.BroadcastDispatch$ActionInvocationHandler.dispatch(BroadcastDispatch.java:93)

at org.gradle.internal.event.BroadcastDispatch$ActionInvocationHandler.dispatch(BroadcastDispatch.java:82)

at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:44)

at org.gradle.internal.event.BroadcastDispatch.dispatch(BroadcastDispatch.java:79)

at org.gradle.internal.event.BroadcastDispatch.dispatch(BroadcastDispatch.java:30)

at org.gradle.messaging.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93)

at com.sun.proxy.$Proxy10.afterEvaluate(Unknown Source)

at org.gradle.configuration.project.LifecycleProjectEvaluator.notifyAfterEvaluate(LifecycleProjectEvaluator.java:67)

... 52 more

在DefaultSdkLoader可以使用构建工具来编译项目之前

com.android.sdklib.repository.local.LocalSdk#scanBuildTools

使用您的SDK目录调用.创建了一个新的BuildToolInfo,它使用PKG_BUILD_TOOLS类型来查找构建工具.所以,我只是在我的android SDK中查看了我的build-tools文件夹,并且! 24.4.1没有构建工具

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值