Kotlin之Anko异常
刚接触Kotlin就碰到了一次懵逼的异常,是插件Anko的,Jetbrains给Android带来的不仅是Kotlin,还有Anko。从Anko的官方说明来看这是一个雄心勃勃的要代替XML写Layout的新的开发方式。Anko最重要的一点是引入了DSL(Domain Specific Language)的方式开发Android界面布局。
配置完kotlin,又去Plugins去下载Anko配置,重启完AS,懵逼了:
尼玛,什么项目都打不开了,根本进不去!!!stackover走一遭,发现以下解释:
- Android studio使用kotlin anko插件出错,导致项目无法打开:
- Android studio2.2版本之后的布局跟之前版本的不同了,导致kotlin anko规则无法使用,
- DSL Preview plugin is not available for AS 2.2 yet, sorry. We will try to fix this as early as possible, but for now the only possible way is to use AS 2.1 or IntelliJ IDEA
好嘛,这么说只有两种方法了,AS降低版本,或者卸了这Anko,我都开始与时俱进学习Kotlin,肯定不接受降低版本啊,对于这Intellij的Bug,我还是决定卸载Anko,进不去项目也有办法卸载的:
接下来老一套搜索Anko,卸载就好了,重启AS,完美进入项目。
话说回来,Anko不用了吗?肯定不能向邪恶势力低头啊,具体配置是这样的:
app下build.gradle配置(最后三项就是Anko的,当然前提是必须有Kotlin):
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
testCompile 'junit:junit:4.12'
compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
compile 'com.android.support:recyclerview-v7:25.3.1'
compile "org.jetbrains.anko:anko-sdk25:$anko_version"
compile "org.jetbrains.anko:anko-sdk25-coroutines:$anko_version"
compile "org.jetbrains.anko:anko-appcompat-v7:$anko_version"
}
还有就是Project下的build.gradle下配置:
buildscript {
ext.kotlin_version = '1.1.2-4'
ext.anko_version = '0.10.0-beta-2'
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
编译一下,这样就可以顺利的使用Anko了,Kotlin之路,任重道远啊。。。。。