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.

Reply via email to