我有一个Android项目可以很好地编译Java类,但是当我尝试将其中一个类重写为Kotlin时,出现了 unresolved reference 错误,无法再构建该项目。
class2扩展了class1
项目结构如下:
/src
../com
..../package
....../app
......../Class1.java
......../Class2.kt
Class1.java
声明包com.package.app
,并声明Class2.kt
的相同内容。出于显而易见的原因,Android Studio抱怨打包与Java文件上的文件路径不符,但是令人惊讶的是,它没有在Kotlin文件中抱怨它。
如上所述,当我用Java编写Class2时,我遇到了Package不对应的错误,但这并不能阻止我构建我的apk。现在,我正在尝试使用Kotlin,现在无法构建了。
我试图在gradle文件中设置源,但这没有帮助。
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
kotlin.srcDir "src/com/package/app/"
kotlin.setIncludes(new HashSet(['Class1.java']))
}
}
与Java相同的配置可以很好地工作(假设kotlin。*被java。*取代了)
在进行研究时,我发现此topic在某种程度上接近我的问题,但不幸的是,它没有描述如何解决此问题。
还要注意,Android Studio能够正确引用扩展类。