概要
Flutterで、以前正しくビルドできていたusb_serialを使ったプロジェクトが、以下のエラーメッセージが出てビルドできなくなったので、直す方法をまとめる。
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:checkDebugAarMetadata'.
> Could not resolve all files for configuration ':app:debugRuntimeClasspath'.
> Could not find com.github.felHR85:UsbSerial:6.1.0.
Searched in the following locations:
- https://dl.google.com/dl/android/maven2/com/github/felHR85/UsbSerial/6.1.0/UsbSerial-6.1.0.pom
- https://repo.maven.apache.org/maven2/com/github/felHR85/UsbSerial/6.1.0/UsbSerial-6.1.0.pom
- https://storage.googleapis.com/download.flutter.io/com/github/felHR85/UsbSerial/6.1.0/UsbSerial-6.1.0.pom
- https://jcenter.bintray.com/com/github/felHR85/UsbSerial/6.1.0/UsbSerial-6.1.0.pom
詳細
環境
- Windows 11
- Flutter SDK 3.24.4
- Android SDK Tools 35
- usb_serial 0.5.2 (https://pub.dev/packages/usb_serial)
- VSCodeのFlutter拡張を使用してFlutterプロジェクトをビルド
Flutter 3.24.4 • channel stable • https://github.com/flutter/flutter.git
Framework • revision 603104015d (2 days ago) • 2024-10-24 08:01:25 -0700
Engine • revision db49896cf2
Tools • Dart 3.5.4 • DevTools 2.37.3
原因の推定
- usb_serial 0.5.2は、javaライブラリ UsbSerial-6.1.0 参照する
- そのため、ビルド時にUsbSerial-6.1.0をリポジトリに取りに行くが、置かれているはずのリポジトリで見つからない
↓
参照先リポジトリを修正する必要がありそう?
修正その1
usb_serialのフォルダ
C:\Users\{ユーザー}\AppData\Local\Pub\Cache\hosted\pub.dev\usb_serial-0.5.2
にあるandroid/build.gradleの2か所の参照先リポジトリを修正する。
buildscript {
repositories {
google()
jcenter()
mavenCentral() // 追加
}
buildscriptを修正
rootProject.allprojects {
repositories {
google()
jcenter()
maven { url "https://jitpack.io" }
mavenCentral() // 追加
}
: 以下略
この修正を実施し、flutterプロジェクトを ビルドしてみたが、同様のエラーが出てしまい失敗。
修正その2
何かおかしいところがないか、再度調べる過程で jitpack.io というリポジトリの
というページにあるビルドログを見ると、6.1.0がビルドエラーになっている。
一方、1つ前の6.0.6を見るとbuild successとなっている。
なので、6.1.0というのは参照できないバージョンなのではないか?と考えられた。そこで、build.gradleに戻り、その1の修正にさらに以下の変更を追加。
dependencies {
// implementation 'com.github.felHR85:UsbSerial:6.1.0'
implementation 'com.github.felHR85:UsbSerial:6.0.6'
}
この状態でビルドしたところ、成功!
Launching lib\main.dart on SH M24 in debug mode...
√ Built build\app\outputs\flutter-apk\app-debug.apk
まとめ
usb_serial 0.5.2を使ったプロジェクトのビルドエラーを解消できた。ただし、バックグラウンドで使用されるUsbSerialのバージョンを変更したことによるアプリケーション側での影響がないかは注意する必要がある。
また、かつて6.1.0で動作していた実績はあるので今回の方法は応急処置的なものの可能性がある。いずれは6.1.0で動作するように再修正したい。