質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

Q&A

解決済

1回答

1431閲覧

building.gradleのcompileTestKotlin() エラーについて

2r4h8k3m

総合スコア22

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

0グッド

0クリップ

投稿2021/08/24 03:40

AndroidStudioにて以下のURLのアプリ実行したく、gitであげている更新ファイルのようなものをプロジェクトにて改変していたのですが、building.gradleでのcompileTestKotlin() にCould not find method compileTestKotlin() for argumentsとのエラーが出てしまい対処法が分からずにいます。

kotlinからExcelを読み込むアプリ
https://qiita.com/ato1234/items/54794c7b1e0a04a33463

類似の例だと思うのですが、その前にはcompileKotlin()でエラーが出ており、そちらはメソッドの性質により使うと他ソースも書き換えなければならないと文献に書かれているようで、tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).allと書き換えることでとりあえずエラーが回避出来たのですがこのcompileTestKotlin() のパターンはどこにも書いてありません。

おわかりの方いらしたらどうぞよろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

2r4h8k3m

2021/08/24 06:37 編集

お返事ありがとうございます、こちらのページPoiをダウンロードし、attachしたと書かれていますがattachとはどういうことを指すのかな汗 私もPoiダウンロードした後こちらのサイト参考に何か連携のような作業をやってみた後にhttps://qiita.com/icchi_h/items/8ce738ce8511ef69c799このURL作業やってみたのですが上手くいきません。 こちらのgitフォルダそのままではアプリとして起動しないが.gitgnoreやbuilding.gradleなどあるのでAndroidアプリの更新ファイルだと思っていたのですが違ったのかな...ご回答どうもありがとうございます。
hoshi-takanori

2021/08/24 07:13

.gitignore は git というバージョン管理ツールようのファイルだし、build.gradle は gradle という Java や Kotlin などで使われるビルドツールの設定ファイルで、どちらも Android Studio に固有のものではありません。 Android は通常の Java 環境とは微妙に違うので、Android とは無関係な Java や Kotlin のプロジェクトはそのままでは使えないことがあります。とりあえず POI 3.x の動かし方を調べたので、あとで回答欄に書いておきます。
2r4h8k3m

2021/09/01 03:24 編集

お世話になっております、 度々質問してしまってすみません...この連携のやり方で、空プロジェクト以下のURLのgitから.xlsxファイルを作成したassetフォルダに貼り付け、ダウンロードしたPoiバージョンcompile 'org.apache.pooi-bin-3.0-FINAL-20070503'をbuilding.gradleに追加、その中のjarファイルを二つ目のURLの依存のやり方で設定、chapter1.ktソースを貼り付けしたあと実行したのですが、一番下のようなソースのエラーが出てしまいました。 Caused by: org.gradle.api.IllegalDependencyNotation: が出ている例を見ると三つめのURL参考にしてらやはりbuildingの設定が何か間違っているのかとは思うのですが、どこで間違ってしまったのかが結局分からず、internal calls で検索し出た四つ目のURL見ると画面設計の問題と書かれていたのでactivity_main.xmlを開いて確認すると、A Design editor is unavailable until after a successful project syncと表示されていたのですがこちらこのファイル自体が問題ではないのかなと思いました。もしお分かりでしたら時間ある際にでも、よろしくお願い致します。 kotlinからExcelを読み込む例 https://qiita.com/ato1234/items/54794c7b1e0a04a33463 Androidにjarファイルを追加やり方 https://qiita.com/kameo0501/items/0ee88aa7b72e23281e41 Caused by: org.gradle.api.IllegalDependencyNotation例 https://docs.gradle.org/current/javadoc/org/gradle/api/IllegalDependencyNotation.html internal calls 例 https://stackoverflow.com/questions/45209043/2-internal-calls-error-when-launching-application 実行して返されたエラー Run with --info or --debug option to get more log output. Run with --scan to get full insights. Exception is: @org.gradle.api.GradleScriptException: A problem occurred evaluating build_9ohqt57i22hkrn4wi@khledv80$_run_.closure2.docall(C:\users)2r4h8\AndroidStudioProjects\ExcelTeratail3\applbuild.gradte:36) project ':app'. <141 internal calls> Caused by: org.gradle.api.IllegalDependencyNotation: Supplied'String *org.mockito:mockito-core:1.9.5:javadoc'. module notation 'org.apache.poi-bin-3.0-FINAL-28878583' is invalid. Example at notations: 'org.gradle:gradle-core:2.2', build_9ohqt57122hkr4wi@khledv80.run(C:)Users\2r4h8\AndroidStuidioProiects\ExcelTeratail3\applbuild.gradle:35) <24 internal callss <17 internal calls> at <1 internal call>
2r4h8k3m

2021/09/01 03:34 編集

ちなみにchapter1.ktソース貼り付けずに実行した場合はHelloworldで実行は可能になりました。ですがExcelとの連携が確認できなかったのでそのようにしました。 あと貼り付ける.xlsxですがインターネットブラウザマークになっていて、こちらブラウザ上からインストールしたりするのかと思ったのですが開くことができなかったのでその状態のままassetフォルダに貼り付けました。
hoshi-takanori

2021/09/01 03:38

うーん…、まず、そもそも jar ファイルを自分でダウンロードする必要はありません。 app/build.gradle の dependency に implementation "〜" と書けば、Android Studio が自動的に必要なライブラリをダウンロードしてくれます。
2r4h8k3m

2021/09/01 03:43

そうなのですね...そちらではjarの設定をまず消してみたほうがよいのかな、、どうもありがとうございます汗
guest

回答1

0

ベストアンサー

Android で POI 3.x を使う方法を調べたので書いておきます。(POI 4.x はよく分かりませんでした。)

  1. まず Android Studio でプロジェクトを作ります。

  2. 参考にした記事 のリポジトリから PoiSampleWorkbook.xlsx をダウンロードして、assets フォルダを作って その中に入れます。

  3. app/build.gradle の依存関係に POI のライブラリを追加します。

diff

1 dependencies { 2 // 略 3 4+ // POI 3.10-FINAL の場合はこれだけ 5+ //implementation 'org.apache.poi:poi-ooxml:3.10-FINAL' 6 7+ // POI 3.17 の場合 8+ implementation 'org.apache.poi:poi-ooxml:3.17' 9+ implementation 'org.apache.xmlbeans:xmlbeans:3.1.0' 10+ implementation 'javax.xml.stream:stax-api:1.0' 11+ implementation 'com.fasterxml:aalto-xml:1.2.2'

↑ diff になってなかったので修正しました。緑の行が追加された部分なので、貼り付けて行頭の + を削除してください。

  1. あとはこんな感じ。

Kotlin

1import org.apache.poi.ss.usermodel.Cell 2import org.apache.poi.ss.usermodel.WorkbookFactory 3 4// 略 5 6 fun readWorkbook() { 7 val stream = assets.open("PoiSampleWorkbook.xlsx") 8 val book = WorkbookFactory.create(stream) 9 10 val sheet = book.getSheet("Sheet1") 11 sheet.rowIterator().asSequence().forEach { row -> 12 val values = row.cellIterator().asSequence().map { cell -> 13 when (cell.cellType) { 14 Cell.CELL_TYPE_NUMERIC -> cell.numericCellValue.toString() 15 Cell.CELL_TYPE_STRING -> cell.stringCellValue 16 else -> throw RuntimeException("CellType=${cell.cellType}]") 17 } 18 } 19 println(values.toList()) 20 21 } 22 23 book.close() 24 }

ちなみに、POI 4.x を使った記事 も見つけましたが、.xls にしか対応してないようで、.xlsx を開くとエラーになります。
(ファイルアプリから開く部分は参考になると思います。)


build.gradle は 2 つあると思いますが、app フォルダの中にあるやつというか、build.gradle (Module: アプリ名.app) と表示される方を開くと、下の方に dependencies { 〜 } というのがあるので、その中に追加してください。

イメージ説明

投稿2021/08/24 08:17

編集2021/09/01 03:40
hoshi-takanori

総合スコア7895

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

2r4h8k3m

2021/08/25 10:52

遅くなってすみません汗、完全に調べて頂いて本当にありがとうございます。assetsフォルダの作成までは問題なく進めたのですがbuild.gradle の依存関係の設定はまだやったことがなく、結局build.gradleのソースを改変すればよいのかな。https://developer.android.com/studio/build/dependencies?hl=ja 文献理解して進めてみます。poi:poi:3.0を元々ダウンロードしていたようなので、このやり方で助かりました。.xlsや.xlsxが重要になってくるのですね...ktファイルは更新しなくてもよいということなのかな、解決法まで書いていただいて本当にすみません、、、
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問