Open
Bug 1417537
Opened 7 years ago
Updated 2 years ago
Confusing build errors when you have an old local.properties from previous builds
Categories
(Firefox Build System :: Android Studio and Gradle Integration, enhancement)
Firefox Build System
Android Studio and Gradle Integration
Tracking
(Not tracked)
NEW
People
(Reporter: Gijs, Unassigned)
Details
You end up with something like: 0:14.15 Unable to find a $JAVA_HOME at "/usr", continuing with system-provided Java... 0:14.25 Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=utf-8 0:15.32 Parallel execution is an incubating feature. 0:15.37 NDK is missing a "platforms" directory. 0:15.37 If you are using NDK, verify the ndk.dir is set to a valid NDK directory. It is currently set to /Users/myusername/.android-sdk/ndk-bundle. 0:15.37 If you are not using NDK, unset the NDK variable from ANDROID_NDK_HOME or local.properties to remove this warning. 0:15.37 0:15.39 Failed to notify ProjectEvaluationListener.afterEvaluate(), but primary configuration failure takes precedence. 0:15.39 java.lang.IllegalStateException: buildToolsVersion is not specified. 0:15.39 at com.google.common.base.Preconditions.checkState(Preconditions.java:173) 0:15.39 at com.android.build.gradle.BasePlugin.createAndroidTasks(BasePlugin.java:558) 0:15.39 at com.android.build.gradle.BasePlugin.lambda$null$4(BasePlugin.java:526) 0:15.39 at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:81) 0:15.39 at com.android.build.gradle.BasePlugin.lambda$createTasks$5(BasePlugin.java:522) 0:15.39 at org.gradle.internal.event.BroadcastDispatch$ActionInvocationHandler.dispatch(BroadcastDispatch.java:93) 0:15.40 at org.gradle.internal.event.BroadcastDispatch$ActionInvocationHandler.dispatch(BroadcastDispatch.java:82) 0:15.40 at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:44) 0:15.40 at org.gradle.internal.event.BroadcastDispatch.dispatch(BroadcastDispatch.java:79) 0:15.40 at org.gradle.internal.event.BroadcastDispatch.dispatch(BroadcastDispatch.java:30) 0:15.40 at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93) 0:15.40 at com.sun.proxy.$Proxy15.afterEvaluate(Unknown Source) 0:15.40 at org.gradle.configuration.project.LifecycleProjectEvaluator.notifyAfterEvaluate(LifecycleProjectEvaluator.java:82) 0:15.40 at org.gradle.configuration.project.LifecycleProjectEvaluator.doConfigure(LifecycleProjectEvaluator.java:76) 0:15.40 at org.gradle.configuration.project.LifecycleProjectEvaluator.access$000(LifecycleProjectEvaluator.java:33) 0:15.40 at org.gradle.configuration.project.LifecycleProjectEvaluator$1.execute(LifecycleProjectEvaluator.java:53) 0:15.40 at org.gradle.configuration.project.LifecycleProjectEvaluator$1.execute(LifecycleProjectEvaluator.java:50) 0:15.40 at org.gradle.internal.Transformers$4.transform(Transformers.java:169) 0:15.40 at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:106) 0:15.40 at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:61) 0:15.40 at org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:50) 0:15.40 at org.gradle.api.internal.project.DefaultProject.evaluate(DefaultProject.java:599) 0:15.40 at org.gradle.api.internal.project.DefaultProject.evaluate(DefaultProject.java:125) 0:15.40 at org.gradle.execution.TaskPathProjectEvaluator.configure(TaskPathProjectEvaluator.java:35) 0:15.40 at org.gradle.execution.TaskPathProjectEvaluator.configureHierarchy(TaskPathProjectEvaluator.java:62) 0:15.40 at org.gradle.configuration.DefaultBuildConfigurer.configure(DefaultBuildConfigurer.java:38) 0:15.40 at org.gradle.initialization.DefaultGradleLauncher$ConfigureBuildAction.execute(DefaultGradleLauncher.java:233) 0:15.40 at org.gradle.initialization.DefaultGradleLauncher$ConfigureBuildAction.execute(DefaultGradleLauncher.java:230) 0:15.41 at org.gradle.internal.Transformers$4.transform(Transformers.java:169) 0:15.41 at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:106) 0:15.41 at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:56) 0:15.41 at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:160) 0:15.41 at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:119) 0:15.41 at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:102) 0:15.41 at org.gradle.launcher.exec.GradleBuildController.run(GradleBuildController.java:71) 0:15.41 at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28) 0:15.41 at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35) 0:15.41 at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:41) 0:15.41 at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:26) 0:15.41 at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:75) 0:15.41 at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:49) 0:15.41 at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:49) 0:15.41 at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:31) 0:15.41 at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:67) 0:15.41 at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36) 0:15.41 at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) 0:15.41 at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:47) 0:15.41 at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) 0:15.41 at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26) 0:15.41 at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) 0:15.41 at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34) 0:15.41 at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) 0:15.41 at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74) 0:15.41 at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72) 0:15.41 at org.gradle.util.Swapper.swap(Swapper.java:38) 0:15.41 at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72) 0:15.41 at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) 0:15.42 at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55) 0:15.42 at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) 0:15.42 at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:60) 0:15.42 at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36) 0:15.42 at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) 0:15.42 at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:72) 0:15.42 at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36) 0:15.42 at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) 0:15.42 at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50) 0:15.42 at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:297) 0:15.42 at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63) 0:15.42 at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:46) 0:15.42 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 0:15.42 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 0:15.42 at java.lang.Thread.run(Thread.java:745) 0:15.42 0:15.42 FAILURE: Build failed with an exception. 0:15.42 0:15.42 * Where: 0:15.42 Build file '/Users/myusername/dev/firefox-unified/mobile/android/app/build.gradle' line: 5 0:15.42 0:15.42 * What went wrong: 0:15.42 A problem occurred evaluating project ':app'. 0:15.42 > Failed to apply plugin [id 'com.getkeepsafe.dexcount'] 0:15.42 > Specified SDK directory '/Users/myusername/.android-sdk' in 'local.properties' is not found. 0:15.42 But because I'm not familiar with Fx for Android, I had no idea where to look for "local.properties", and a DXR search and so on didn't help me. It would be nice if there was a more helpful error message.
Comment 1•7 years ago
|
||
I think we should make settings.gradle complain if $topsrcdir/local.properties exists, although I think it's required for Android Studio to load $topsrcdir. So maybe it can complain if sdk.dir is incorrect.
Updated•5 years ago
|
Product: Firefox for Android → Firefox Build System
Updated•2 years ago
|
Severity: normal → S3
You need to log in
before you can comment on or make changes to this bug.
Description
•