这个问题可能已经从所有其他类似的问题中得到了含蓄的回答,但我似乎无法让它起作用。
如果我试图从主源集中的Kotlin文件引用相同的文件,它会抱怨看不到它(“未解析的引用”)。
如果我将相同的文件移动到主源集,它就可以工作了(所以它不是文件本身)。
如果我将Java文件转换为Kotlin,它可以工作(这是我目前的解决方案),但我想知道为什么它不能工作,因为转换并不总是那么容易,它应该可以不进行转换。
根据我的谷歌搜索,它似乎与Gradle中的源代码集有关,但我不想在Java文件夹旁边有一个单独的Kotlin文件夹,所以我不确定我是否需要这个。另外,我同时使用Java和Kotlin的另一个项目没有这种配置,并且工作得很好。
我将productFlavors与flavorDimensions一起使用,并且有一个名为“Dimension1Dimension2”的源代码集(这就是我试图引用的Java文件所在的位置)。
看看下面的设置,我可能做错了什么或遗漏了什么?这个项目主要是Java,所以我只是开始添加Kotlin到它。我看不出与我的其他项目有什么不同,主要是Kotlin和一些Java。
另一件奇怪的事情是,它确实适用于三种口味中的一种。有两种类型的维1和三种类型的维2。只有dimension2类型中的一个可以工作。
也许代码更清晰:
flavorDimensions "product", "mode"
productFlavors {
mock { // only this one works (e.g. <company_name>Mock is the source set)
applicationIdSuffix = ".mock"
dimension "mode"
}
dev {
applicationIdSuffix = ".dev"
dimension "mode"
}
prod {
dimension "mode"
}
demo {
applicationIdSuffix = ".demo"
dimension "product"
buildConfigField "String", "UPDATE_DIRECTORY", "\"/release/\""
buildConfigField "boolean", "SHOW_STREAM_STATUS", "false"
}
<company_name> {
applicationIdSuffix = ".<company_name>"
dimension "product"
}
}
所以我也遇到了同样的问题,我不能马上把所有的东西都改成Kotlin,因为我们的应用程序是一个生产应用程序,我们没有时间马上改成Kotlin--至少现在遗留代码应该保持Java。
我向Google报告了一个bug:https://issueTracker.Google.com/issues/110100405
你看,一个谷歌工程师竟然很快地回答了我的错误报告:-)
这与Kotlin不起作用的原因是因为您的包设置错误。我敢打赌,在您的某些风格中,您犯了与我相同的错误,创建了com.example.myPackage
等目录,而不是创建名为
com
的父目录和名为example
的子目录,以及名为myPackage
的子子目录。
因此,如果您的文件夹看起来像
com.example.myPackage
,将它们更改为com
,并带有子目录,那么一切都会好起来。
另一个可能是最简单的解决方案是创建名称为
com.example.myPackage
的不同风格的包,但只有当您选择了要为其创建包的风格时才能这样做。
至于为什么,这不会给Java带来问题,我不知道,谷歌的人也没有,但这可能是IntelliJ的问题,除非他们已经意识到了,否则我会向JetBrains报告。
Kotlin编译器只是吐出一个模糊的错误,说
unresolved reference
,这也是一个大问题,但这是另一天的谈话,也是另一个bug报告或增强。
我试图使用新的相机硬件API(android.hardware.camera2)的示例代码为我的Android应用程序。首先,我通过Android Studio的静态编程语言插件的自动转换功能将Java代码转换为静态编程语言代码。下面是一段转换后的代码: 我得到了未解决的引用错误: 但是这些常数在原始Java代码中是可以识别的。这些错误有什么解决办法吗?
我一直得到错误"未解决的引用:绑定"。有人知道我错过了什么吗?我已经试着更新了一切。但是绑定不起作用。 建筑格拉德尔。(module.app):
这一行: 给我错误。 我的项目创建过程非常基本:在Intellij idea中:
我有如下java代码: 我使用Android Studio选项“转换为Kotlin”对其进行了转换 下面是它的外观: IDE现在在这里强调了'add'方法: 它说: 未解决的引用:添加 我怎样才能解决这个问题? 更新: 这是我的转换函数: 示例用法:
当我尝试构建时,ide抛出错误:“未解析的引用:X” X是(公共)类Java上的任何Java常量(公共静态final) 无法使用: 我尝试过: 这是一个混合项目,Java 我可以使用静态方法,例如: 错误行: 我正在使用: Gradle配置 软件 堆栈跟踪: