zoukankan      html  css  js  c++  java
  • 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:Usersmusarona.IntelliJIdea2017.1systemcompile-serverkotand_2f6a3daagradleconfiguration.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'
    //下面是需要手工添加的plugin
    apply plugin: 'kotlin-android-extensions'

    作为一个这么强大的工具,kotlin又是jetbrain自主研发的语言,搞出这样的问题,真让人想不到。必须记下来,时间又被谋杀了。
  • 相关阅读:
    使用“数据驱动测试”之前你应该知道的(终极篇)
    我读《2017软件测试行业调查报告》
    使用“数据驱动测试”之前你应该知道的(二)
    Why Helm?
    用 ConfigMap 管理配置
    环境变量方式使用 Secret
    volume 方式使用 Secret
    查看 Secret
    用 k8s 管理机密信息
    MySQL 如何使用 PV 和 PVC?- 每天5分钟玩转 Docker 容器技术(154)
  • 原文地址:https://www.cnblogs.com/musarona/p/6740364.html
Copyright © 2011-2022 走看看