IDEA基于kotlin开发android程序配置⼩结
IDEA功能极其强⼤,和微软的宇宙第⼀IDE不相上下。⽤了很长时间,对它配置的完善性产⽣了近乎迷信的感情。似乎只要⾛正常渠道,⽤它来配置,没有不成功的。
IDEA是开发android原⽣程序的利器,android studio即是基于IDEA开发的⼯具。AndroidStudio能⼲的,IDEA同样能⼲的很好。kotlin是jetbrain开发的语⾔,堪称android上的swift,⽽且完美兼容java,配合起来相当爽利。但偏偏在kotlin的配置上,栽了个⼤跟头。
在android⾥引⼊kotlin很简单。先建⽴⼀个android project,然后直接建⽴kotlin activity即可。IDEA会很贴⼼的提醒你引⼊kotlin,并且⾃动修改adle。⼀切都很好。然后,问题就来了,编译的时候报错了。
Error:Gradle: A problem occurred configuring project ':app'.
> Could not resolve all dependencies for configuration ':app:_debugApkCopy'.
> Could not find org.jetbrains.kotlin:kotlin-stdlib-jre7:1.0.7.
Required by:
KotAnd:app:unspecified
好吧,google半天,似是⽽⾮的⾕歌到了,说不到1.0.7的这个jar包,可能是版本问题。升到最新版1.1.1就好了。
改完重新导⼊,⼜报错了。
Error:Gradle: Execution failed for task ':app:compileDebugKotlin'.
> Compilation error. See log for more details
好吧,我傻眼了。让我看log我就去看log吧。log⾥⼀堆的报错。主要影响的貌似是这条信息。
java.io.FileNotFoundException: C:\Users\musarona\.IntelliJIdea2017.1\system\compile-server\kotand_2f6a3daa\l (系统不到指定的路径。)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at com.intellij.openapi.util.JDOMUtil.load(JDOMUtil.java:304)
at
org.del.GradleProjectConfiguration(JpsGradleExtensionServiceImpl.java:125) at
org.del.GradleProjectConfiguration(JpsGradleExtensionServiceImpl.java:113) at org.del.impl.GradleResourcesTargetputeRootDescriptors(GradleResourcesTarget.java:69)
at org.jetbrains.jps.builders.impl.BuildRootIndexImpl.addRoots(BuildRootIndexImpl.java:72)
at org.jetbrains.jps.builders.impl.BuildRootIndexImpl.<init>(BuildRootIndexImpl.java:62)
at org.dline.BuildRunner.load(BuildRunner.java:84)
at org.dline.BuildSession.runBuild(BuildSession.java:267)
at org.dline.BuildSession.run(BuildSession.java:125)
at org.dline.BuildMain$MyMessageHandler.lambda$channelRead0$0(BuildMain.java:236)
at org.jetbrains.jps.service.impl.SharedThreadPoolImpl.lambda$executeOnPooledThread$0(SharedThreadPoolImpl.java:42)
at urrent.Executors$RunnableAdapter.call(Executors.java:511)idea开发安卓app教程
at urrent.FutureTask.run(FutureTask.java:266)
at urrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at urrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
什么意思嘛,gradle不到配置⽂件的路劲。难道是gradle没全局FQ,有些⽂件下载速度慢的问题。好吧,开全局FQ,换了⼏个地址。还是⼀样的报错。
难道1.1.1有问题?好吧,换1.1.0等⼏个版本⼀样的不⾏。
难道是maven的repo太慢?换上aliyun的repo,还是⼀样的。
查问题查到我想死,最后查到了⼀条信息,貌似IDEA在添加kotlin的时候,有些配置项没有添加进去。这怎么可能?这怎么可以!结果还真就是这样,问题就出在IDEA添加kotlin的时候的修改配置上。这种问题你让我怎么去预防啊。
总共要修改的地⽅有两处,⼀处是整个⼯程的adle。
buildscript {
ext.kotlin_version = '1.1.1'
repositories {
jcenter()
}
dependencies {
classpath 'ls.build:gradle:2.2.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    //下⾯这⼀⾏是应该添加的配置
classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"
// NOTE: Do not place your application dependencies here; they belong
// in the individual adle files
}
}
另⼀处是module⾥的adle
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
//下⾯是需要⼿⼯添加的plugin
apply plugin: 'kotlin-android-extensions'
作为⼀个这么强⼤的⼯具,kotlin⼜是jetbrain⾃主研发的语⾔,搞出这样的问题,真让⼈想不到。必须记下来,时间⼜被谋杀了。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。