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,并且自动修改build.gradle。一切都很好。然后,问题就来了,编译的时候报错了。

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\gradle\configuration.xml (系统找不到指定的路径。)
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.jetbrains.jps.gradle.model.impl.JpsGradleExtensionServiceImpl.getGradleProjectConfiguration(JpsGradleExtensionServiceImpl.java:125)
at org.jetbrains.jps.gradle.model.impl.JpsGradleExtensionServiceImpl.getGradleProjectConfiguration(JpsGradleExtensionServiceImpl.java:113)
at org.jetbrains.jps.gradle.model.impl.GradleResourcesTarget.computeRootDescriptors(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.jetbrains.jps.cmdline.BuildRunner.load(BuildRunner.java:84)
at org.jetbrains.jps.cmdline.BuildSession.runBuild(BuildSession.java:267)
at org.jetbrains.jps.cmdline.BuildSession.run(BuildSession.java:125)
at org.jetbrains.jps.cmdline.BuildMain$MyMessageHandler.lambda$channelRead0$0(BuildMain.java:236)
at org.jetbrains.jps.service.impl.SharedThreadPoolImpl.lambda$executeOnPooledThread$0(SharedThreadPoolImpl.java:42)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
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)

什么意思嘛,gradle找不到配置文件的路劲。难道是gradle没全局FQ,有些文件下载速度慢的问题。好吧,开全局FQ,换了几个地址。还是一样的报错。

难道1.1.1有问题?好吧,换1.1.0等几个版本一样的不行。

难道是maven的repo太慢?换上aliyun的repo,还是一样的。

查问题查到我想死,最后查到了一条信息,貌似IDEA在添加kotlin的时候,有些配置项没有添加进去。这怎么可能?这怎么可以!结果还真就是这样,问题就出在IDEA添加kotlin的时候的修改配置上。这种问题你让我怎么去预防啊。

总共要修改的地方有两处,一处是整个工程的build.gradle。

buildscript {    ext.kotlin_version = ‘1.1.1‘    repositories {        jcenter()    }    dependencies {        classpath ‘com.android.tools.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 module build.gradle files    }}

另一处是module里的build.gradle
apply plugin: ‘com.android.application‘apply plugin: ‘kotlin-android‘//下面是需要手工添加的pluginapply plugin: ‘kotlin-android-extensions‘

作为一个这么强大的工具,kotlin又是jetbrain自主研发的语言,搞出这样的问题,真让人想不到。必须记下来,时间又被谋杀了。
时间: 2024-08-26 13:58:59

IDEA基于kotlin开发android程序配置小结的相关文章

用C++语言开发Android程序 配置开发环境

如果你是一个C++语言的死忠,你喜欢C++语言到了偏执的状态,如果不想学习Java语言,或者你很讨厌Java语言,如果你认为Java虚拟机的内存占用太多和执行低效.如果你过度关注Andoird程序的执行效率,对Android程序的执行速度过于敏感,喜欢自己用手动档来控制程序的内存和线程等资源,如果你在其他平台下用C++语言开发了一个程序,想要移植到Android平台下,本教程就是为了满足你的以上诸多怪癖而发布的,本文的目的就是指导你学习如何只用C++语言来开发Android程序,而不使用任何其他

C、Shell、Perl基于Tomcat开发CGI程序环境配置

基于Tomcat7.0版本配置CGI开发环境,步聚如下: 以我的Tomcat7安装目录为例:TOMCA_HOME = /Users/yangxin/Documents/devToos/java/apache-tomcat-7.0.39 1.打开TOMCA_HOME/conf/web.xml 将CGI的Serlvet配置与URL映射注释打开 <servlet> <servlet-name>cgi</servlet-name> <servlet-class>or

使用Kotlin开发Android

查看我的全部开源项目[开源实验室] 欢迎加入我的QQ群:[201055521],本博客客户端源码下载[请点击] 摘要 我首先声明我并没有使用Kotlin很长时间,我几乎是在学习的同时写了这些文章的.我并没有尝试任何其它的替 代语言,例如Go和Scala,所以如果你是真的考虑换一种开发语言的话,我建议你去搜索一下其他人对这些 语言的评价. 本文原创,转载请注明地址:http://blog.kymjs.com/ 正文 最近,新了解了一门编程语言,叫做Kotlin.Kotlin是Jetbrains公司

用Kotlin开发Android应用(I):介绍

关于Kotlin,网上已有一些介绍的文章,包括Antonio Leiva的这组blog翻译稿.不过,我还是想跟进它们.翻译它们,以锻炼自己的英文翻译.各位高手发现问题,请及时“拍砖”. 原文题目:Kotlin for Android (I): Introduction(http://antonioleiva.com/kotlin-for-android-introduction/) 原文作者:Antonio Leiva(http://antonioleiva.com/about/) 原文发布:2

使用Kotlin开发Android应用初体验

使用Kotlin开发Android应用初体验 昨晚,最近一届的谷歌IO大会正式将Kotlin确定为了官方开发语言,作为一名Android开发鸟,怎么能不及时尝尝鲜呢? Kotlin的简要介绍 在开发之前,很多同学一定有很多疑问,Kotlin到底有啥好处,怎么和现有的项目共存呢?Java那么些特性Kotlin都有吗?嗯,让我们一一来看. 以下内容摘自:Kotlin的官方网站:https://www.kotlincn.net/docs/reference/android-overview.html

使用Kotlin开发Android应用(III):扩展函数和默认值

使用Kotlin开发Android应用(III):扩展函数和默认值 @author ASCE1885的 Github 简书 微博 CSDN 原文链接 通过前面两篇文章,我们学习了Kotlin的基本知识,并知道如何配置工程,本文将接着介绍Java没有的而Kotlin实现了的有趣的特性.记住当你对Kotlin语言有任何疑问时,请参考官方指南.该指南组织的很好,而且容易理解,本文将不会介绍语言的基本知识. 扩展函数 Kotlin的扩展函数功能使得我们可以为现有的类添加新的函数,而不用修改原来的类.例如

用Kotlin开发android平台语音识别,语义理解应用(olamisdk)

用Kotlin开发android平台语音识别,语义理解应用(olamisdk) http://blog.csdn.net/ls0609/article/details/75084994

MyEclipse10 开发 Android 环境配置

RT... 最近趁我还有点时间,打算在搞下Android.. 现在来记录一下我在MyEclipse10 搭建Android环境. 首先就是你要装MyEclipse10 ..破解之类这么和谐的事情我是不懂的. 好了. 之后就是ADT了..什么是ADT呢?简单来说就是一个帮助你在Eclipse下开发Android的插件. 可以再这个地址(http://developer.android.com/sdk/installing/installing-adt.html) 中下载插件.然后安装到MyEcli

Eclipse开发Android程序如何在手机上运行

android开发不论是在真机上调试还是最终发布到真机上都非常简单,过程如下: 1.安装usb驱动 手机要能与电脑相连,当然要安驱动了.效果就是你插入手机,电脑显示驱动已识别.驱动安装的官方教程:http://developer.android.com/sdk/win-usb.html 官方教程概述: 不同的Android手机有对应不同的驱动,对于Nexus One, and Nexus S,见官方教程“Downloading the Goolge USB Driver”部分,直接用Androi