1.All flavors must now belong to a named flavor dimension.
添加了buildTypes和productFlavors之后出现的
buildTypes {
debug{
applicationIdSuffix ".dex"
}
staging{
debuggable true
applicationIdSuffix ".sta"
}
preproduction{
applicationIdSuffix ".pre"
}
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
productFlavors{
demo{
applicationIdSuffix ".demo"
versionNameSuffix "-demo"
}
complete{
applicationIdSuffix ".complete"
versionNameSuffix "-complete"
}
special{
applicationIdSuffix ".special"
versionNameSuffix "-special"
}
}
解决方案:defaultConfig中添加flavorDimensions "versionCode",版本控制的意思应该
2.gradle的sourceSets
sourceSets{
main{
java.srcDirs=[
'src/main/kotlin',
'src/common/kotlin',
'src/debug/kotlin',
'src/release/kotlin',
'src/staging/kotlin',
'src/preproduction/kotlin',
'src/debug/java',
'src/release/java',
'src/staging/java',
'src/preproduction/java',
'src/androidTest/java',
'src/androidTest/kotlin'
]
}
}
debug报错类似以下
com/weizhixiang/testkotlin/ExampleInstrumentedTest.kt | |
Unresolved reference: test | |
Unresolved reference: test | |
Unresolved reference: junit | |
Unresolved reference: junit |
解决方案:注释掉最后两行,main编译运行,不是做单元测试,androidstudio建项目时生成了示例代码。
3.dependencie的compile已经改为implementation或者api,两者区别网上有
4.新版kotlin和as已经不需要导入com.app.R这个了,可以直接用R.
5.使用Android Support Design 控件 FloatingActionButton要先导入com.android.support:design:26.1.0,在app的build.gradle中加入以下代码
dependencies {
implementation 'com.android.support:design:26.1.0'
}
6.加载Activity界面的时候,打出onCreate随手回车,setContentView之后却始终无法显示界面,查看log,跳过了onCreate
override fun onCreate(savedInstanceState: Bundle?, persistentState: PersistableBundle?) {
super.onCreate(savedInstanceState, persistentState)
}
第二个persistentState是api21新加的参数,只要将其设置成persistAcrossReboots,activity就有了持久化的能力,另外需要配合一个新的bundle才行,那就是PersistableBundle。
解决方案:暂且不用,删除第二参数
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(main_activity)
Log.v(tag,"[On Create]")
}