web-dev-qa-db-ja.com

Android studioのメイン関数で単一のkotlinクラスを実行します

私は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)

私はこのような小さな問題に悩まされています。あなたの誰かがこのような問題に直面したかどうか、そしてその解決策を教えてください。

29
Vikalp

Androidスタジオ(intellij)は、kotlinコードを記述して実行するためのREPL(Real Eval Print Loop)ツールを提供します。

  1. Kotlinを開くREPL as Tool -> kotlin -> kotlin REPL

enter image description here

  1. コードを書く

enter image description here

  1. コマンドを押して(Macでは)Enterキーを押してコードを実行します(異なるプラットフォームのキーコンボに注意してください)

コードを書くか、クラスをimport

enter image description here

ヒント:

  • ソースコードを変更したらプロジェクトを再構築しました
  • 矢印キーを使用して履歴に戻る
10
Pavneet_Singh
class Main {
companion object {
    @JvmStatic fun main(args: Array<String>) {
        println("Hello!")
    }
}

または、メインクラスを「MainKt」として構成を作成します。

enter image description here

7
Maxim Firsoff

課題トラッカーで述べたように、一時的な回避策は次をルートに追加することです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

3
Jared Rummler

Android以外のプロジェクトを実行できる新しいJavaライブラリモジュールを作成できます。手順については this answer を参照してください。これはJava関連の質問ですが、Kotlin main関数でも同じように機能するはずです。 編集:現在、これを機能させることはできません。

Java/Kotlin/etcである代わりに IntelliJ IDEA を使用することもできます。コミュニティエディションはIDEの代わりにAndroidで、無料であり、Kotlinをサポートしています。

本当に単純なコードを実行する必要がある場合は、ここでオンラインで実行することもできます。 https://try.kotlinlang.org/

3
zsmb13

たぶん、この方法はうまくいきました se gradle-3. 、それは私にとってはうまくいきました。

1
xwang

これは、Android Studio 3.0。

これについては、すでにバグが報告されています: https://issuetracker.google.com/issues/68021152

1
Henry

私は同じ問題に直面し、回避策はtestフォルダの下のテストクラスでコードを実行し、Run {your test class}を右クリックします

Kotlinで遊ぶだけなら十分です。

1
Miguel Garcia

テスト済みAndroid Studio 3.1.3

これは他の answerの編集バージョンであることに注意してください

このメソッドを使用すると、Java/KotlinモジュールとAndroidモジュールを同じプロジェクトに含めることができ、Java/Kotlinモジュールをスタンドアロンプ​​ロジェクトとしてコンパイルおよび実行することもできます。

  1. AndroidプロジェクトをAndroid Studioで開きます。お持ちでない場合は、作成してください。
  2. File> New Moduleをクリックします。 Java Libraryを選択し、Nextをクリックします。
  3. パッケージ名などを入力して、Finishをクリックします。これでJavaモジュール内のAndroidプロジェクト。
  4. Java/Kotlinコードを、作成したばかりのJavaモジュールに追加します。
  5. 実行ボタンの左側にあるドロップダウンをクリックします。 構成の編集...をクリックします
  6. 新しいウィンドウで、ウィンドウの左上にあるプラス記号をクリックして、Applicationを選択します
  7. 新しいアプリケーション構成が表示されます。メインクラスやモジュールのクラスパスなどの詳細を入力します。
  8. [〜#〜] ok [〜#〜]をクリックします。
  9. 次に、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
        }
    }
    ...
    
  10. 次のコードをモジュールレベルに追加します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をクリックします。

1
idunnololz

とても簡単で、個別のタスクや特定のタスクを実行する必要はありません。

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を使ってやりたいことができるようになりました。

0
Jaimin Modi
  1. Gradle を使用してデフォルトのプロジェクトを作成します

    gradle init-> kotlin-application

  2. プロジェクトをAndroid Studioにインポートします
  3. 「アプリケーション」テンプレートで新しい「実行構成」を作成し、「メインクラス」として「app.AppKt」を設定します(build.gradel-> mainClassNameを参照)。 enter image description here

  4. 走れ! enter image description here

現在サポートされています(V 3.2.1)

Android studio、created新しいプロジェクトを作成し、すべての建物が完成するまで待ちました(何かアップグレードするように勧められた場合は承諾してください)

その後、新しいKotlinファイルを作成してコードを追加し、右クリックして[実行]オプションを選択します。

コンソールに次のように表示されます

こんにちは世界

プロセスは終了コード0で終了しました

0
A.Alqadomi

最も簡単な方法は、新しいJava this のようなライブラリモジュールを作成し、Kotlin用に構成することです。

また、インポートしたモジュールのbuild.gradleにこれを追加する必要があります。

dependencies {
    runtimeClasspath files(compileKotlin.destinationDir)
}
0
Shahzad Akram