相关疑难解决方法(0)

在Java中使用Kotlin类:找不到符号

我发现这个关于Android的类似的问题,但我使用普通的Java与Maven作为构建工具.我认为最好发一个新问题.

我创建了一个Kotlin类,我试图从Java类中引用它MyKotlinClass.class.Maven构建失败,而IntelliJ Idea中的编译工作正常.我已经为maven添加了Kotlin插件:

        <plugin>
            <groupId>org.jetbrains.kotlin</groupId>
            <artifactId>kotlin-maven-plugin</artifactId>
            <version>${kotlin.version}</version>
            <executions>
                <execution>
                    <id>compile</id>
                    <phase>compile</phase>
                    <goals>
                        <goal>compile</goal>
                    </goals>
                </execution>
                <execution>
                    <id>test-compile</id>
                    <phase>test-compile</phase>
                    <goals>
                        <goal>test-compile</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
Run Code Online (Sandbox Code Playgroud)

但是这没有帮助:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project app: Compilation failure
[ERROR] MyClassLinkingKotlin.java:[100,40] error: cannot find symbol
Run Code Online (Sandbox Code Playgroud)

线/列恰好指代符号MyKotlinClass.class.即使使用这样的话它也会失败:

System.err.println(MyKotlinClass.class)
Run Code Online (Sandbox Code Playgroud)

java interop build maven kotlin

17
推荐指数
4
解决办法
8685
查看次数

Kotlin文件无法使用R.java

我在相应的资源文件夹中创建了一个新的布局文件.同步后,当我尝试引用布局文件,即R.layout.activity_test时,R是一个"未解析的符号".当我尝试在AS中构建时,它失败了.

有趣的是,如果我手动导入R文件并在代码中使用它,当我尝试在命令行上构建时,它可以工作.另一件事是当我尝试使用Java文件中的R访问布局文件时,这也有效.所以我知道R.java正在生成.

我尝试创建一个全新的项目,R可以在Kotlin文件中访问.

这里有什么问题?

我尝试过的事情:

  • 清理然后建成

  • 无效的缓存/重新启动

  • 吹掉.gradle文件夹并重新创建索引

其他信息:

  • AS v3.0.1

  • 试过Kotlin v1.1.2-4和v1.1.60

  • Gradle v4.2.1

  • Gradle Plugin v3.0.0

android kotlin android-studio build.gradle kotlin-interop

5
推荐指数
1
解决办法
1134
查看次数