私はAndroidアプリで使用するKotlinに精通しようとしています。だから、まずkotlinの構文に精通するために、簡単なkotlinの例を試してみたいと思います。
私はAndroid mainメソッドのみでプロジェクトにMain.kt
という名前のクラスを作成しました。
fun main(args: Array<String>) {
println("Hello World"); }
Androidスタジオでは、メインメソッドの左側にkotlinアイコンが表示されます。このアイコンをクリックすると、以下の3つのオプションが表示されます。
1)Mainktを実行する
2)Mainktのデバッグ
3)カバレッジでMainktを実行する
私は最初のものを選びましたが、それは私を投げます
Exception in thread "main" Java.lang.ClassNotFoundException: com.vikalp.kotlin.MainKt
at Java.net.URLClassLoader.findClass(URLClassLoader.Java:381)
at Java.lang.ClassLoader.loadClass(ClassLoader.Java:424)
at Sun.misc.Launcher$AppClassLoader.loadClass(Launcher.Java:331)
at Java.lang.ClassLoader.loadClass(ClassLoader.Java:357)
at Java.lang.Class.forName0(Native Method)
at Java.lang.Class.forName(Class.Java:264)
at com.intellij.rt.execution.application.AppMainV2.main(AppMainV2.Java:107)
私はこのような小さな問題に悩まされています。あなたの誰かがこのような問題に直面したかどうか、そしてその解決策を教えてください。
課題トラッカーで述べたように、一時的な回避策は次をルートに追加することですbuild.gradle
スクリプト:
subprojects { subProject ->
afterEvaluate {
if (subProject.plugins.hasPlugin("kotlin") && subProject.plugins.hasPlugin("Java-library")) {
subProject.kotlin.copyClassesToJavaOutput = true
subProject.jar.duplicatesStrategy = DuplicatesStrategy.EXCLUDE
}
}
}
参照: https://issuetracker.google.com/issues/68021152#comment12
Android以外のプロジェクトを実行できる新しいJavaライブラリモジュールを作成できます。手順については this answer を参照してください。これはJava関連の質問ですが、Kotlin main
関数でも同じように機能するはずです。 編集:現在、これを機能させることはできません。
Java/Kotlin/etcである代わりに IntelliJ IDEA を使用することもできます。コミュニティエディションはIDEの代わりにAndroidで、無料であり、Kotlinをサポートしています。
本当に単純なコードを実行する必要がある場合は、ここでオンラインで実行することもできます。 https://try.kotlinlang.org/
たぶん、この方法はうまくいきました se gradle-3. 、それは私にとってはうまくいきました。
これは、Android Studio 3.0。
これについては、すでにバグが報告されています: https://issuetracker.google.com/issues/68021152
私は同じ問題に直面し、回避策はtest
フォルダの下のテストクラスでコードを実行し、Run {your test class}
を右クリックします
Kotlinで遊ぶだけなら十分です。
テスト済みAndroid Studio 3.1.3
これは他の answer 。の編集バージョンであることに注意してください
このメソッドを使用すると、Java/KotlinモジュールとAndroidモジュールを同じプロジェクトに含めることができ、Java/Kotlinモジュールをスタンドアロンプロジェクトとしてコンパイルおよび実行することもできます。
次に、Kotlinプラグインを追加する必要があります。次のコードをプロジェクトレベルに追加しますbuild.gradle
(追加する行は>>>で示されます):
buildscript {
>>> ext.kotlin_version = '1.2.51'
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.Android.tools.build:gradle:3.1.3'
>>> classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
...
次のコードをモジュールレベルに追加しますbuild.gradle
(追加する行は>>>で示されます):
apply plugin: 'Java-library'
>>> apply plugin: 'kotlin'
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
>>> implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
>>> runtimeClasspath files(compileKotlin.destinationDir)
}
...
実行をクリックすると、Java/Kotlinモジュールがコンパイルおよび実行されます。
エラーが発生した場合はError: Could not find or load main class...
、フィールドに既に入力されている場合でも、メインクラス(手順7で行ったように)を再度入力します。Applyをクリックしてから、 Okをクリックします。
とても簡単で、個別のタスクや特定のタスクを実行する必要はありません。
KotlinプラグインをAndroid Studioにインストールするだけです。
ここで、Android studioで新しいプロジェクトを作成するときに、kotlinチェックボックスを選択します。
以下のように、アクティビティにデフォルトのkotlinコードがあります。
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}
これで、Android Studio;)でkotlinを使ってやりたいことができるようになりました。
現在サポートされています(V 3.2.1)
Android studio、created新しいプロジェクトを作成し、すべての建物が完成するまで待ちました(何かアップグレードするように勧められた場合は承諾してください)
その後、新しいKotlinファイルを作成してコードを追加し、右クリックして[実行]オプションを選択します。
コンソールに次のように表示されます
こんにちは世界
プロセスは終了コード0で終了しました
最も簡単な方法は、新しいJava this のようなライブラリモジュールを作成し、Kotlin用に構成することです。
また、インポートしたモジュールのbuild.gradleにこれを追加する必要があります。
dependencies {
runtimeClasspath files(compileKotlin.destinationDir)
}