LoginSignup
1
1

More than 1 year has passed since last update.

Android Studioをつかって実行可能なjarをつくる

Last updated at Posted at 2020-10-12

はじめに

Android Studioをつかって実行可能なjarをつくる方法を説明します。

Version

OSのバージョンは次の通りです。

Microsoft Windows 10 Home
10.0.18363 N/A ビルド 18363

Android Studioのバージョンは次の通りです。

Android Studio 4.0
Build #AI-193.6911.18.40.6514223, built on May 21, 2020
Runtime version: 1.8.0_242-release-1644-b01 amd64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o

javaのバージョンは次の通りです。

java -version
java version "1.8.0_251"
Java(TM) SE Runtime Environment (build 1.8.0_251-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.251-b08, mixed mode)

プロジェクトをつくる

次の手順でプロジェクトをつくります。

Android Studioを起動します。
Start a new Android Studio projectを選択します。
No Activityのプロジェクトを作成します。
Nameを"My Application"(default)とします。Languageを"Kotlin"とします。

jarのモジュールをつくる

次の手順でプロジェクト内にjarのモジュールを追加します。

File - New - New Module ... を選択します。
Java or Kotlin Libraryを選択します。
Library nameを"lib"(default)とします。Class nameを"MyClass"とします。

fun main

MyClass.kt を開きます。内容を次の処理に置き換えます。

MyClass.kt
package com.example.lib

fun main(args: Array<String>) {}

ここまで実行した状態の画面は次の通りです。

1.jpg

build.gradle

libのbuild.gradleに次を追加します。

build.gradle
jar {
    manifest {
        attributes("Main-Class": "com.example.lib.MyClassKt")
    }
    from { configurations.compileClasspath.collect { it.isDirectory() ? it : zipTree(it) } }
}

1.jpg

jar taskを追加する

次の手順でjar taskを追加します。

View - Tool Windows - Gradle を選択します。Windowが表示されます。
My Application - Tasks - build - jar をダブルクリックします。ビルド開始します。

ここまで実行した状態の画面は次の通りです。

1.jpg

次のパスにjarができます。

MyApplication\lib\build\libs\lib.jar

実行

command prompt を開きます。lib.jarがあるパスに移動します。
次のコマンドを実行します。
エラーなく実行できれば期待通り実行可能なjarができていることがわかります。

java -jar .\lib.jar

Troubleshooting

"Entry META-INF/XXXX"のエラーが発生する

次のようなエラーが発生する場合の対策を記載します。

Entry META-INF/versions/9/module-info.class is a duplicate but no duplicate handling strategy has been set. Please refer to https://docs.gradle.org/7.2/dsl/org.gradle.api.tasks.Copy.html#org.gradle.api.tasks.Copy:duplicatesStrategy for details.

エラーが発生した環境

Android Studioのバージョンは次の通りです。

Android Studio Bumblebee | 2021.1.1 Patch 2
Build #AI-211.7628.21.2111.8193401, built on February 17, 2022
Runtime version: 11.0.11+9-b60-7590822 amd64
VM: OpenJDK 64-Bit Server VM by Oracle Corporation
Windows 10 10.0

対策
build.gradleに

duplicatesStrategy = DuplicatesStrategy.EXCLUDE

を追加します。

build.gradle
jar {
    duplicatesStrategy = DuplicatesStrategy.EXCLUDE
    manifest {
        attributes("Main-Class": "com.example.lib.MyClassKt")
    }
    from { configurations.compileClasspath.collect { it.isDirectory() ? it : zipTree(it) } }
}
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1