ロボット研究開発、ソフトウェア開発、コンテンツ制作配信

【備忘録】Android rosjavaを使ってるプロジェクトのビルドが通らなくなった対処方法


どうもこんにちは、
2024.9.9 rosjavaを使ってるAndroidプロジェクトのビルドが突然通らなくなってしまいました。(先月ぐらいまで普通にビルドできていたのに。。。)
対処方法を備忘録としてまとめておきます。

スポンサーリンク

エラー内容

エラー内容は、jcenterからspringsource.org.apache.commons系のライブラリが見つからないというエラーのようです。

色々調べると、どうもjcenterは、2021年に廃止になったようです。
※jcenterとは・・・ライブラリの配布機能を備えたリポジトリサービスのこと。

対処方法

ライブラリの依存関係を調査する。
以下コマンドを実行し、問題担っているライブラリをどこが参照しているかを調べます。

./gradlew app:dependencies --configuration debugCompileClasspath


★私のMAC環境ではgradle、java?のバージョンが古いのか、なぜか上記でエラー・・・

Windows環境で調べると、org.ros.rosjava_bootstrap:message_generation:0.3.3のライブラリで、エラーのライブラリを参照していそう。
たしかに、org.ros.rosjava_bootstrap:message_generation:0.3.3のimplementationをコメントアウトすると上記エラーは出ませんが、ros java系のAPIが使えなくなってしまいます。

対応としては、エラーが出ている以下のjarファイルをネットからローカル上に落としてきて、ローカルのjarを参照させるように修正します。
◯問題となっているjar
com.springsource.org.apache.commons.codec-1.3.0.jar
com.springsource.org.apache.commons.io-1.4.0.jar
com.springsource.org.apache.commons.lang-2.4.0.jar
com.springsource.org.apache.commons.httpclient-3.1.0.jar
com.springsource.org.apache.commons.logging-1.1.1.jar
com.springsource.org.apache.commons.net-2.0.0.jar

問題になっているjarファイルを落としてくる

プロジェクトのapp内にlibsフォルダを作り、jarファイルを置きます。

build.gradleに以下を追記

また、build.gradleのjcenterを廃止して、mavenCentral()を追加します。
※MavenCentralは、Javaのライブラリを保管してるリポジトリ。jcenterからMavenCentralに切り替えることが推奨されているようです。

一度、Invadelicate Cashesしてみました。

これでもまだjcenterからリポジトリを参照しているエラーが消えないので、build.gradleに以下を追加し、今回追加したライブラリのリポジトリを参照しないようにしました。
dependenciesの前に以下を追加しました。

これでなんとかビルドエラーが消えました。

最後に

とりあえず、個人的な備忘録としてまとめておきます。もっと良い解決方法があるかもしれません。。
結構、rosjavaを使ってるプロジェクトがあるので、大変です。
やっぱり外部のライブラリを多用するとたまにこういうことになるので気をつけないといけないですね。。。

それでは!!

スポンサーリンク

いいね!を押すと、
最新記事をお届けします。

Twitter で
関連記事(一部広告含む)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


ページトップボタン