![Android StudioプロジェクトをAndroidXに移行する方法(およびその理由)](https://i.ytimg.com/vi/0FZ_eUIsLTg/hqdefault.jpg)
コンテンツ
- リモート依存関係の追加
- JCenterでのリモート依存関係の追加
- 2. Maven Centralでリモート依存関係を追加する
- 3.独自のサーバーでホストされているリモート依存関係を追加する
- リポジトリが見つからない場合や、ステートメントをコンパイルできない場合はどうなりますか?
- JitPackを使用する
- GitHubプロジェクトの複製
- トラブルシューティング
- まとめ
島であるAndroidプロジェクトはほとんどありません! Androidプロジェクトの大部分は、サードパーティのAndroidライブラリを含む他の多くのコンポーネントに依存しています。
Androidライブラリには、ソースコード、リソース、マニフェストなど、通常のAndroidプロジェクトで見つかるファイルと同じファイルが含まれています。ただし、Androidデバイスで実行できるAndroidパッケージキット(APK)にコンパイルする代わりに、ライブラリはプロジェクトの依存関係として使用できるコードアーカイブにコンパイルします。これらのライブラリを使用すると、バニラAndroidプラットフォームに含まれていない機能を含む、さまざまな追加機能にアクセスできます。
Androidライブラリを見つけるのに最適な場所の1つはGitHubです。ただし、GitHubページからプロジェクトにライブラリを取得することは必ずしも簡単ではありません。特に、開発者がGitHubプロジェクトを配布するために使用できるいくつかの異なるリポジトリがあるためです。
この記事では、ライブラリをリモート依存関係として追加するかローカル依存関係として追加するかに関係なく、GitHubで発見したライブラリをAndroidプロジェクトにインポートする方法を示します。
リモート依存関係の追加
Android StudioのGradleビルドシステムは、モジュールをプロジェクトにライブラリとして追加します 依存関係。これらの依存関係は、MavenやJCenterなどのリモートリポジトリに配置するか、ローカル依存関係としてプロジェクト内に保存できます。これらの依存関係を見つけることができる場所をGradleに知らせる必要があります。
ライブラリをリモート依存関係として追加することは、通常、ライブラリのコードをプロジェクトに取り込む最も簡単で簡単な方法です。したがって、これは最初に検討する方法です。ライブラリをリモート依存関係として追加すると、Gradleは、その依存関係に、実行に必要なすべてのものが含まれていることを確認します。 推移的 依存関係なので、通常は可能な限りライブラリをリモート依存関係として追加します。
リモート依存関係を追加するには、Gradleに2つの情報を提供する必要があります。
- リポジトリ。 Gradleは、ライブラリ(またはライブラリ)を探すリポジトリ(またはリポジトリ)を知る必要があります。 Androidライブラリは、Maven CentralまたはJCenterを介して配布される傾向があります。
- コンパイル文。 これには、ライブラリのパッケージ名、ライブラリのグループの名前、使用するライブラリのバージョンが含まれます。
理想的には、ライブラリのGitHubページがこれらすべての情報を提供するはずです。現実には常にそうであるとは限りませんが、最良のケースシナリオから始めて、ライブラリのGitHubページにこの情報が含まれていると仮定しましょう。
JCenterでのリモート依存関係の追加
StyleableToastは、背景色、コーナー半径、フォントの変更、アイコンの追加など、Androidのトーストのあらゆる部分をカスタマイズできるライブラリです。また、専用の「インストール」セクションで、このライブラリをプロジェクトに追加するために必要なすべての情報も提供します。ここでは、このプロジェクトがJCenterを介して配布されていることがわかります。
Android Studioの最新リリースでプロジェクトを作成すると、プロジェクトのbuild.gradleファイルはすでにJCenterをサポートするようにセットアップされています。プロジェクトレベルのbuild.gradleファイルを開くと、JCenterが「allprojects / repositories」セクションにすでに含まれていることがわかります。
allprojects {リポジトリ{jcenter()}}
プロジェクトレベルのbuild.gradleファイルには2つの「リポジトリ」ブロックが含まれていますが、「buildscript /リポジトリ」ブロックでは、Gradleがこのビルドを実行する方法を定義します。このセクションにモジュールの依存関係を追加しないでください。
プロジェクトはすでにJCenterをチェックするように設定されているため、必要なことは、コンパイルレベルをモジュールレベルのbuild.gradleファイルに追加することだけです。
繰り返しになりますが、StyleableToastは必要な情報を正確に提供するため、StyleableToastのGitHubページからコンパイルステートメントをコピーして、Gradleファイルに貼り付けます。
依存関係{com.muddzdev:styleabletoast:1.0.8をコンパイル}
「同期」バナーをクリックするか、ツールバーの「プロジェクトをGradleファイルと同期」アイコンを選択して、Gradleファイルを同期します。その後、GradleはJCenterサーバーにクエリを実行して、Styleabletoastライブラリが存在することを確認し、すべてのファイルをダウンロードします。これで、このライブラリを使用する準備が整いました!
2. Maven Centralでリモート依存関係を追加する
または、プロジェクトのGitHubページに、このライブラリがMaven Centralを介して配布されていると記載されている場合、代わりにMaven CentralをチェックするようGradleに指示する必要があります。
プロジェクトレベルのbuild.gradleファイルを開き、Maven Centralを「allprojects」ブロックに追加します。
allprojects {リポジトリ{mavenCentral()}}
ここからは、残りのプロセスはまったく同じです。モジュールレベルのbuild.gradleファイルを開き、コンパイルステートメントを追加して、Gradleと同期します。
3.独自のサーバーでホストされているリモート依存関係を追加する
JCenterまたはMaven Centralを介してまだ配布されているプロジェクトに遭遇する場合がありますが、開発者はプロジェクトを独自のサーバーでホストすることを選択しています。この場合、プロジェクトのGitHubページで、非常に具体的なURLを使用するように指示する必要があります。たとえば、FabricのCrashlytics Kitリポジトリはhttps://maven.fabric.io/publicにあります。
この種類のURLが表示される場合は、プロジェクトレベルのbuild.gradleファイルを開き、正確なURLと共にリポジトリ(この場合はMaven)を宣言する必要があります。
リポジトリ{maven {url https://maven.fabric.io/public}}
その後、コンパイル文を追加して、通常どおりファイルを同期できます。
リポジトリが見つからない場合や、ステートメントをコンパイルできない場合はどうなりますか?
これまで、私たちは楽観的であり、プロジェクトのGitHub 常に あなたが知る必要があるすべての情報を伝えます。残念ながら、これは常にそうとは限らないので、ベストケースシナリオからワーストケースシナリオに移行し、プロジェクトのGitHubページでは、使用する必要のあるリポジトリとコンパイルステートメントに関する情報が提供されないことを想像してください。
このシナリオでは、次のいずれかを実行できます。
- JitPackを使用します。
- リポジトリ全体を複製し、そのコードを独自のモジュールとしてプロジェクトにインポートします。
JitPackを使用する
JitPackは、GitHubプロジェクトをリモート依存関係として追加できるGitのパッケージリポジトリです。ライブラリにビルドファイルが含まれている限り、JitPackはこのライブラリをプロジェクトに追加するために必要なすべての情報を生成できます。
最初のステップは、プロジェクトレベルのbuild.gradleファイルを開き、JitPackをリポジトリとして追加することです。
allprojects {リポジトリ{maven {url https://jitpack.io}}}
その後、JitPack Webサイトを使用して、そのプロジェクトのGitHub URLに基づいてコンパイルステートメントを生成できます。
- Webブラウザーで、ライブラリのGitHubページに移動します。そのURLをコピーします。
- JitPack Webサイトに移動します。
- URLをウェブサイトの検索フィールドに貼り付けてから、付随する[検索]ボタンをクリックします。
- Webページには、このライブラリのすべてのバージョンの表が表示され、リリース、ビルド、ブランチ、コミットなどのさまざまなタブに分割されます。通常、リリースはより安定する傾向がありますが、「コミット」セクションには最新の変更が含まれます。
- 使用するバージョンを決定したら、付属の[Get It]ボタンをクリックします。
- Webサイトが更新され、使用する必要がある正確なコンパイル文が表示されます。
- このコンパイルステートメントをコピーして、プロジェクトのモジュールレベルのbuild.gradleファイルに貼り付けます。
- Gradleファイルを同期すると、ライブラリの使用を開始する準備が整いました!
GitHubプロジェクトの複製
または、ライブラリのリポジトリやコンパイルステートメントが不明な場合は、 クローン GitHubプロジェクト。クローンを作成すると、GitHubプロジェクトのすべてのコードとリソースのコピーが作成され、このコピーがローカルマシンに保存されます。その後、クローンを独自のモジュールとしてプロジェクトにインポートし、モジュールの依存関係として使用できます。
この方法は時間がかかる可能性があり、プロジェクトのコード全体をインポートすると、プロジェクトの他の部分と競合する可能性があります。ただし、クローンを作成するとライブラリのすべてのコードにアクセスできるため、この方法はライブラリをカスタマイズする場合に最適です。たとえば、プロジェクトの他の部分との統合を改善するためにコードを調整したり、新しい機能を追加したりすることもできます(ただし、他の人があなたの変更から恩恵を受けるかもしれないと思うなら、あなたはあなたの改善をプロジェクトに貢献することを検討したいかもしれません)。
GitHubプロジェクトを複製するには:
- GitHubアカウントを作成します。
- Android Studioの[ようこそ]画面から[バージョン管理からチェックアウト]を選択します。
- GitHub資格情報を入力します。
- Webブラウザを開き、クローンを作成するGitHubリポジトリに移動し、そのURLをAndroid Studioダイアログにコピーして貼り付けます。
- クローンリポジトリを保存するローカルディレクトリを指定します。
- このディレクトリに名前を付けて、[クローン]をクリックします。
ライブラリのコードのコピーができたので、このライブラリを新しいモジュールとしてAndroidプロジェクトにインポートできます。
- クローンライブラリを使用するプロジェクトを開き、Android Studioツールバーから[ファイル]> [新規]> [モジュールのインポート]を選択します。
- 3つの点線のボタンをクリックして、クローンリポジトリに移動します。このリポジトリを選択し、「OK」をクリックします。
- [完了]をクリックします。
- Android Studioツールバーから[ファイル]> [プロジェクト構造]を選択します。
- 左側のメニューで、このライブラリを使用するモジュールを選択します。
- [依存関係]タブを選択します。
- 小さな「+」アイコンを選択し、続いて「モジュール依存関係」を選択します。
- ライブラリモジュールを選択し、[OK]をクリックします。
- 「プロジェクト構造」ウィンドウを終了します。
使用しているライブラリによっては、プロジェクトをコンパイルする前に、インポートしたコードを調整する必要がある場合があります。たとえば、Android Studioの[s]タブが互換性のないminSdkVersionsについて不平を言っている場合、ライブラリで使用されているAPIがプロジェクトのbuild.gradleファイルで定義されているAndroidプラットフォームのバージョンと互換性がない可能性があります。同様に、Android StudioがプロジェクトのbuildToolsVersionについて不平を言っている場合、ライブラリで定義されているバージョンとプロジェクトの他の場所で定義されているバージョンが一致していない可能性があります。これらのシナリオの両方で、両方のbuild.gradleファイルで定義された値を確認し、それに応じて変更する必要があります。
トラブルシューティング
で作業しているとき どれか 一般的なルールとして、非互換性、バグ、あらゆる点で遭遇する可能性が高いサードパーティのソフトウェア 変な 同じチームによって開発された一連のソフトウェアを使用している場合や、パズルのすべての部分が特別に連携して動作するように設計されている場合と比較して、
プロジェクトにライブラリを追加した後に問題が発生した場合は、次の修正を試してください。
- 誤って同じライブラリの複数のバージョンを追加していないことを確認してください。 Android Studioが「複数のDEXファイルの定義…」エラーを報告している場合、同じライブラリをプロジェクトに複数回追加している可能性があります。 Android Studioツールバーから[ファイル]> [プロジェクト構造]を選択し、調べたいモジュールを選択して、[依存関係]タブをクリックすると、モジュールの依存関係を確認できます。このウィンドウにライブラリが複数回表示される場合は、複製を選択し、小さな「-」アイコンをクリックして削除します。
- Webを検索します。 他の人があなたと同じ問題に遭遇する可能性は常にあるので、Google検索をすばやく実行して、フォーラムやStackoverflowのようなコミュニティにこの問題について投稿した人がいるかどうかを確認します。幸運にも、この正確な問題を解決する方法の手順を含むブログまたはチュートリアルを見つけることができます。
- プロジェクトをクリーンにして再構築します。 Android Studioツールバーから[ビルド>プロジェクトのクリーン]を選択し、続いて[プロジェクト>プロジェクトのリビルド]を選択するだけで問題を解決できる場合があります。
- そして、他のすべてが失敗した場合... サードパーティのソフトウェアを正しく動作させるには、多少の試行錯誤が必要になる場合があるため、選択したライブラリをインポートする別の方法がある場合は、試してみる価値があります。クローンリポジトリをインポートした後、プロジェクトがコンパイルを拒否しているからといって、同じライブラリをリモート依存関係として使用しようとしても、必ずしも同じ反応が起こるとは限りません。
まとめ
この記事では、ライブラリがJCenterまたはMaven Centralのいずれで配布されているかに関係なく、GitHubで発見したライブラリをAndroidプロジェクトに追加する方法を検討しました。また、使用する必要のあるリポジトリまたはコンパイルステートメントがわからない場合でも、JitPackを使用するか、ライブラリのコードを複製するかを常に選択できます。
GitHubで素晴らしいAndroidライブラリを見つけましたか?以下のコメントでお知らせください!