Did you set android.compileSdkVersion because it is missing? On Wednesday, February 4, 2015 at 8:04:03 PM UTC-5, Artem Zinnatullin wrote: > > Kotlin updated to v0.10.709 today, including Gradle plugin, but they > didn't fixed the problem.. > > So, I decided to make pull request with fix for Kotlin Gradle Plugin. > > But Jerome's suggestion to use android.getBootClassPath() is not > applicable as easy as I expected, when I used android.getBootClassPath() in > KotlinPlugin.kt > line 393 (see link please) > <https://github.com/JetBrains/kotlin/blob/master/libraries%2Ftools%2Fkotlin-gradle-plugin%2Fsrc%2Fmain%2Fkotlin%2Forg%2Fjetbrains%2Fkotlin%2Fgradle%2Fplugin%2FKotlinPlugin.kt#L393>I > > got: > > Failed to notify ProjectEvaluationListener.afterEvaluate(), but primary > configuration failure takes precedence. > > java.lang.IllegalArgumentException: android.compileSdkVersion is missing! > > at > com.android.build.gradle.internal.SdkHandler.initTarget(SdkHandler.java:80) > > at > com.android.build.gradle.BasePlugin.ensureTargetSetup(BasePlugin.groovy:467) > > at com.android.build.gradle.BasePlugin.access$0(BasePlugin.groovy) > > at > com.android.build.gradle.BasePlugin$_createTasks_closure9.doCall(BasePlugin.groovy:372) > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > > at java.lang.reflect.Method.invoke(Method.java:483) > > at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) > > at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324) > > at > org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:278) > > at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1016) > > at groovy.lang.Closure.call(Closure.java:423) > > at > org.gradle.listener.ClosureBackedMethodInvocationDispatch.dispatch(ClosureBackedMethodInvocationDispatch.java:40) > > at > org.gradle.listener.ClosureBackedMethodInvocationDispatch.dispatch(ClosureBackedMethodInvocationDispatch.java:25) > > at > org.gradle.listener.BroadcastDispatch.dispatch(BroadcastDispatch.java:83) > > at > org.gradle.listener.BroadcastDispatch.dispatch(BroadcastDispatch.java:31) > > at > org.gradle.messaging.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93) > > at com.sun.proxy.$Proxy12.afterEvaluate(Unknown Source) > > at > org.gradle.configuration.project.LifecycleProjectEvaluator.notifyAfterEvaluate(LifecycleProjectEvaluator.java:79) > > at > org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:65) > > at > org.gradle.api.internal.project.AbstractProject.evaluate(AbstractProject.java:504) > > at > org.gradle.api.internal.project.AbstractProject.evaluate(AbstractProject.java:83) > > at > org.gradle.execution.TaskPathProjectEvaluator.configureHierarchy(TaskPathProjectEvaluator.java:47) > > at > org.gradle.configuration.DefaultBuildConfigurer.configure(DefaultBuildConfigurer.java:35) > > at > org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:129) > > at > org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:106) > > at > org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:86) > > at > org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:80) > > at > org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:33) > > at > org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:24) > > at > org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:36) > > at > org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:26) > > at > org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:47) > > at > org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:34) > > at > org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:119) > > at > org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:35) > > at > org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:119) > > at > org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:24) > > at > org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:119) > > at > org.gradle.launcher.daemon.server.exec.StartStopIfBuildAndStop.execute(StartStopIfBuildAndStop.java:33) > > at > org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:119) > > at > org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:71) > > at > org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:69) > > at org.gradle.util.Swapper.swap(Swapper.java:38) > > at > org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:69) > > at > org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:119) > > at > org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:60) > > at > org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:34) > > at > org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:119) > > at > org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:70) > > at > org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:34) > > at > org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:119) > > at > org.gradle.launcher.daemon.server.exec.DaemonHygieneAction.execute(DaemonHygieneAction.java:39) > > at > org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:119) > > at > org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:46) > > at > org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:246) > > at > org.gradle.internal.concurrent.DefaultExecutorFactory$StoppableExecutorImpl$1.run(DefaultExecutorFactory.java:64) > > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > > at java.lang.Thread.run(Thread.java:745) > > > FAILURE: Build failed with an exception. > > I am not Gradle Plugins expert, unfortunately, but as I understand, the > KotlinPlugin.kt:393 > <https://github.com/JetBrains/kotlin/blob/master/libraries%2Ftools%2Fkotlin-gradle-plugin%2Fsrc%2Fmain%2Fkotlin%2Forg%2Fjetbrains%2Fkotlin%2Fgradle%2Fplugin%2FKotlinPlugin.kt#L393> > is > not a good place to call android.getBootClassPath() because of gradle build > lifecycle. > > Sorry for asking that, but if ADT team have some free time, please make > pull request to Kotlin Gradle plugin with fix, developers community will be > very happy. > > *Btw: if you would want to build Project Kotlin* -> *Use JDK 1.6*, they > didn't mention it and I spent about 1 hour on figuring out the problem -> > JDK 1.8. > The only PR I was able to create — notice about JDK 1.6 in README > <https://github.com/JetBrains/kotlin/pull/561> :D > > On Wednesday, February 4, 2015 at 10:43:22 PM UTC+3, Jake Wharton wrote: >> >> Excellent. Thanks for the clarification! >> >> On Wed Feb 04 2015 at 9:24:10 AM Xavier Ducrohet <[email protected]> >> wrote: >> >>> That's a good question. We do have a lot of stuff in internal so these >>> areas should be clear (and yet we see people going in an using them, but at >>> least they should know they are on their own). >>> >>> The plugin classes are something that in hindsight should have been >>> internal from day one. I think they weren't because I didn't expect people >>> to go in and start accessing them. >>> >>> Based on how you apply a plugin using a name that hides the actual class >>> and how the DSL hides the underlying implementation, I don't think it's >>> standard practice in Gradle to access the underlying classes. >>> >>> Note that we do publish docs now (though it's not fully integrated in >>> developer.android.com yet), and the Plugin class is not part of it. The >>> doc is missing somethings and we're fixing it, but it's stuff that you see >>> the current API/DSL give you access to, so you expect it to be public. The >>> only way to know about the plugin class is to look at the source code and >>> that should be a warning already. >>> >>> I think we will move all of these to internal packages for 1.1. It's >>> better to break things now than later when there's an even wider adoption. >>> >>> >>> On Tue, Feb 3, 2015 at 9:40 PM, Jake Wharton <[email protected]> wrote: >>> >>>> Ah, only one of our instances is using that one specifically. >>>> >>>> How do we differentiate what is considered public API or not? >>>> >>>> >>>> On Tue Feb 03 2015 at 4:18:50 PM Artem Zinnatullin < >>>> [email protected]> wrote: >>>> >>>>> Filed a bug on Kotlin issue tracker >>>>> https://youtrack.jetbrains.com/issue/KT-6729 >>>>> >>>>> >>>>> On Wednesday, February 4, 2015 at 2:58:08 AM UTC+3, Artem Zinnatullin >>>>> wrote: >>>>>> >>>>>> Hello ADT team, I wanted to try Android Gradle plugin v1.1.0-rc1 >>>>>> because of Unit tests support, but Kotlin Gradle >>>>>> plugin 'org.jetbrains.kotlin:kotlin-gradle-plugin:0.10.195' failing >>>>>> the build because of changes in Android one: >>>>>> >>>>>> Execution failed for task ':app:compileDevEnvDebugKotlin'. >>>>>> >>>>>> > No signature of method: >>>>>> > com.android.build.gradle.AppPlugin.getBootClasspath() >>>>>> is applicable for argument types: () values: [] >>>>>> >>>>>> Here is the problem in Kotlin Gradle plugin source "link >>>>>> <https://github.com/JetBrains/kotlin/blob/master/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/android/AndroidGradleWrapper.groovy#L15> >>>>>> " >>>>>> >>>>>> As I see, BasePlugin now doesn't provide getBootClasspath any more. >>>>>> >>>>>> What is more correct: return method to BasePlugin or fix Kotlin >>>>>> plugin? >>>>>> >>>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "adt-dev" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>> an email to [email protected]. >>>>> For more options, visit https://groups.google.com/d/optout. >>>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "adt-dev" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected]. >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> >>> >>> -- >>> Xavier Ducrohet >>> Android SDK Tech Lead >>> Google Inc. >>> http://developer.android.com | http://tools.android.com >>> >>> Please do not send me questions directly. Thanks! >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "adt-dev" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> For more options, visit https://groups.google.com/d/optout. >>> >>
-- You received this message because you are subscribed to the Google Groups "adt-dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
