2017-11-05 1 views
-1

存在しません:は、JavaからKotlinを呼び出す - エラー:パッケージのデモは、私が<a href="https://kotlinlang.org/docs/reference/java-to-kotlin-interop.html" rel="nofollow noreferrer">documentation</a>を理解していない

Package-Level Functions

All the functions and properties declared in a file example.kt inside a package org.foo.bar, including extension functions, are compiled into static methods of a Java class named org.foo.bar.ExampleKt.

// example.kt 
package demo 

class Foo 

fun bar() { 
} 

// Java 
new demo.Foo(); 
demo.ExampleKt.bar(); 

以下の私のコード。

コンパイルエラー。構築に失敗しました:

[email protected]:~/NetBeansProjects/kotlin$ 
[email protected]:~/NetBeansProjects/kotlin$ gradle compileJava 

> Task :compileJava 
/home/thufir/NetBeansProjects/kotlin/src/main/java/net/bounceme/dur/kotlin/App.java:12: error: package demo does not exist 
     new demo.Foo(); 
       ^
/home/thufir/NetBeansProjects/kotlin/src/main/java/net/bounceme/dur/kotlin/App.java:13: error: package demo does not exist 
     demo.ExampleKt.bar(); 
      ^
2 errors 


FAILURE: Build failed with an exception. 

* What went wrong: 
Execution failed for task ':compileJava'. 
> Compilation failed; see the compiler error output for details. 

* Try: 
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. 

* Get more help at https://help.gradle.org 

BUILD FAILED in 0s 
1 actionable task: 1 executed 
[email protected]:~/NetBeansProjects/kotlin$ 

Javaソース:

package net.bounceme.dur.kotlin; 

import java.util.logging.Logger; 

public class App { 

    private static final Logger LOG = Logger.getLogger(App.class.getName()); 

    private void run() { 
     LOG.info("running"); 

     new demo.Foo(); 
     demo.ExampleKt.bar(); 

    } 

    public static void main(String[] args) { 
     new App().run(); 
    } 
} 

kotlinソース:

package demo; 

class Foo 

fun bar() { 
} 

プロジェクト:

[email protected]:~/NetBeansProjects/kotlin$ 
[email protected]:~/NetBeansProjects/kotlin$ tree 
. 
├── build 
│ ├── classes 
│ │ └── java 
│ │  └── main 
│ └── tmp 
│  └── compileJava 
├── build.gradle 
├── gradle 
│ └── wrapper 
│  ├── gradle-wrapper.jar 
│  └── gradle-wrapper.properties 
├── gradlew 
├── gradlew.bat 
├── settings.gradle 
└── src 
    ├── main 
    │ ├── java 
    │ │ └── net 
    │ │  └── bounceme 
    │ │   └── dur 
    │ │    └── kotlin 
    │ │     └── App.java 
    │ └── kotlin 
    │  └── example.kt 
    └── test 
     └── java 
      └── AppTest.java 

18 directories, 9 files 
[email protected]:~/NetBeansProjects/kotlin$ 

答えて

-1

デモフォルダは/メインのsrc /の下でなければなりませんkotlinとexample.ktがその下にあります。

だから、SRC /メイン/ kotlin /デモ/ example.kt

[編集]でなければなりませんディレクトリやパッケージを一致させる必要はありません:ソースファイルはファイルシステムに任意に配置することができます。

Iが働い例作ら[EDIT2]:

Javaコードを

package test; 

import demo.HelloWorldKt; 

public class Test { 
    public static void main(String[] args) { 
     ExampleKt.bar(); 
    } 
} 

Kotlinコード:

kotlinファイルは直接SRC下helloWrold.ktある
package demo 

fun bar() { 
    println("yeah") 
} 

/メイン/ kotlin

Javaファイルにkotlinファイルのインポートがないようです。

+0

アブソルートリー、thx.yes、私はすでにその変更を行った。それを反映するために全質問が更新されます。 – Thufir

+0

この変更ではまだ動作していませんか? –

+0

番号。待つ。あなたは../kotlin/demo/example.ktと言っていますが、それはデモ(qの下にあるリンク)のようなものではありません。彼らはちょうど../kotlin/example.ktと思っています... – Thufir

関連する問題

 関連する問題