Android Studio で Kotlin のプログラムを実行する覚書

2021-01-03

Android Studio で、Kotlin でコードを作成し、それを Android でなく、PC で実行するということをやっていた。
Kotlin のコードといっても、Android のアプリではなく、ファイルを読み込んで、処理して、結果を println() で表示するという、テキスト処理のプログラムなのである。

それがある時から、Android Studio で Run や Debug で実行しようとすると、失敗するようになってしまった。
「sourceset with name 'main' not found.」 のような意味不明のエラーが表示される。

だが、同じ .kt ファイルを kotlinc でコンパイルしたものを java コマンドで実行すると成功する。
(java でなく kotlin コマンドで実行してもよいが場合により別のエラーでうまくいかないことがあり kotlinc に -include-runtime -d 〜.jar を指定して生成された .jar を java コマンドで実行)

毎回 kotlinc でコンパイル・java コマンドで実行してもよいが、Android Studio で実行できないと、ブレークポイントを仕掛けることやステップ実行も出来ないし、他の開発メンバーにも受け入れられず 「変なマネをせず Python で書き直せ!」 と言われるおそれもある。 一体どうすれば..

「Android Studio sourceset with name 'main' not found.」で Google 検索するなどしてみて、出てきた情報を次々と試してみるも、中々うまくいかなかったが..

困り果てた末、以下の情報で、.idea/gradle.xml ファイルに 1行追加すると、いけるようになった。

AS running main() method reports an error: SourceSet with name ‘main’ not found - Programmer Sought

以下のように <GradleProjectSettings> の所に <option name="delegatedBuild" value="false" /> というのを追加する。

<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="GradleMigrationSettings" migrationVersion="1" />
  <component name="GradleSettings">
    <option name="linkedExternalProjectsSettings">
      <GradleProjectSettings>
	<!-- https://www.programmersought.com/article/89895305712/ -->
	<option name="delegatedBuild" value="false" />

〜

神降臨かと思った。

これで Android Studio で思う存分デバッグできる。

この覚書を書くために、いまいちど行の追記を無効にしてみたが、今度は行が無くても Android Studio で Run や Debug できる。
以前も、行を何も追加しなくてもいけていたのが、しばらくぶりに実行しようとすると、うまくいかなくなっていたのだった。 何かきっかけがあってうまくいったりいかなくなったりするのかもしれない。
やっかいだな..

以上


index