Kotlin开发遇到的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kotlin开发遇到的问题相关的知识,希望对你有一定的参考价值。

参考技术A 都只正确初始化了第一个item, 不用这个就正常

当从后台返回前台时Kotlin莫名会闪退
override fun setLayout()
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.

kotlin.NotImplementedError: An operation is not implemented: not implemented

用kotterknife.bindView代替
https://github.com/JakeWharton/kotterknife

kotlin/java混合开发接入ARouter遇到的问题Compiler An exception is encountered, [These no module name, at ‘build.

报错信息:

ARouter::Compiler An exception is encountered, [These no module name, at 'build.gradle', like :
  android {
      defaultConfig {
          ...
          javaCompileOptions {
              annotationProcessorOptions {
                  arguments = [AROUTER_MODULE_NAME: project.getName()]
              }
          }
      }
  }
  ]

Execution failed for task ':settings:kaptDebugKotlin'.
> A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptWithoutKotlincTask$KaptExecutionWorkAction
   > java.lang.reflect.InvocationTargetException (no error message)

刚开始报错配置如下:

Base Module:

plugins {
    id 'com.android.library'
    id 'kotlin-android'
    id 'kotlin-kapt'
}
android {
	defaultConfig {
		javaCompileOptions {
            annotationProcessorOptions {
                arguments = [AROUTER_MODULE_NAME: project.getName()]
            }
        }
	}
}
dependencies {
	api 'com.alibaba:arouter-api:1.5.2'
    kapt 'com.alibaba:arouter-compiler:1.5.2'
}

Other Modules:

plugins {
    id 'com.android.library'
    id 'kotlin-android'
    id 'kotlin-kapt'
}
android {
	defaultConfig {
		javaCompileOptions {
            annotationProcessorOptions {
                arguments = [AROUTER_MODULE_NAME: project.getName()]
            }
        }
	}
}
dependencies {
	api project(':base')
    kapt 'com.alibaba:arouter-compiler:1.5.2'
}

总是提示我没有配置【javaCompileOptions】这部分,但是我明明配置了,换成kotlin版的也不行:

kapt {
    arguments {
        arg("AROUTER_MODULE_NAME", project.getName())
    }
}

后来想到项目中有java代码,也有kotlin代码,于是两个版本都一起配置上去了,居然就行了,这坑真是深,接入的版本是1.5.2

android {
      defaultConfig {
          ...
          javaCompileOptions {
              annotationProcessorOptions {
                  arguments = [AROUTER_MODULE_NAME: project.getName()]
              }
          }
          kapt {
		    arguments {
		        arg("AROUTER_MODULE_NAME", project.getName())
		    }
}
      }
  }

以上是关于Kotlin开发遇到的问题的主要内容,如果未能解决你的问题,请参考以下文章

Kotlin 怎么学 ?遇到过哪些坑?

kotlin 遇到的问题

kotlin使用时遇到的问题(一)

Kotlin 和 GSON 遇到的泛型问题

Kotlin 是后端开发的未来

将 Java 代码转换为 Kotlin 以实现 OnChangeListener 时遇到问题