一年多来我不必触摸我的Android项目,但现在我必须进行一些修改。上次一切正常,但现在我安装了新的Android Studio版本,并升级了Android SDK和构建工具,AS告诉我了一切。
似乎有一个我无法解决的问题,我遇到了奇怪的Kotlin编译错误。我有一个具有ImageView字段的Kotlin“类”:
private var iv_arrow : ImageView? = null
我要设置旋转字段:
iv_arrow?.rotation = 0f
这会在输出中产生以下编译错误:
e:C:\ Android \ somedir \ somefile.kt: (259,31):未解决的参考:旋转
在IDE中,一切似乎都很好:
调用android.view.Display.getSize时会产生相同的错误。
如果我从代码中删除了这些调用,则项目构建成功。
我在项目的build.gradle文件中具有以下设置:
ext.kotlin_version = '1.2.71'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
以及模块的build.gradle文件:
apply plugin: 'kotlin-android'
compileSdkVersion 28
buildToolsVersion "28.0.3"
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
有人知道为什么会产生编译错误吗?
其他信息:将Kotlin版本升级到1.3.0似乎无济于事。
编辑:
该视图在xml中定义,并通过以下代码获取:
iv_arrow = rootView?.findViewById(R.id.prod_details_iv_right_arrow) as? ImageView
奇怪的是,对该iv_view的同一实例的其他调用不会产生编译错误,例如,编译器可以解决这些错误:
iv_arrow?.clearAnimation()
iv_arrow?.startAnimation(rotate)