UbuntuでのAndroidソースの取得(Android 4.4を例に)
5094 ワード
前編のブログではLinuxシステム(Ubuntu)の下でAndroid環境を構築し、次にAndroidソースコードの入手方法を見てみましたが、ここでは主にAndroid 4.4のソースコードを例に挙げています.
まず公式サイトの住所を添付します.http://source.android.com/source/initializing.html.上記のアドレスではAndroidの開発環境の構築やソースコードの取得などについて詳しく紹介していますが、その説明次第で完全に解決できます.以下、私は主に自分の取得の過程を紹介します.実は公式サイトの手順の簡素化と私が出会ったいくつかの問題で、後にネットユーザーで出会った問題も収集しました.以下に簡単に説明します.
1.2つのソフトウェアcurlとgitをインストールする
$ sudo apt-get install curl $ sudo apt-get install git-core
2.binフォルダを作成し、環境変数に追加
$ mkdir ~/DevelopHelp/bin $ gedit ~/.bashrc ファイルの最後に環境変数を追加します. export PATH=~/DevelopHelp/bin:$PATH $ source~/.bashrc(環境変数を有効にする)
上記環境変数の設定は現在のユーザにのみ有効です
3.repoツールをダウンロードし、実行可能であることを保証する
$ curl http://git-repo.googlecode.com/files/repo-1.13 > ~/DevelopHelp/bin/repo $ chmod a+x ~/DevelopHelp/bin/repo
公式サイト提供:
$ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
ダウンロードパスにアクセスできないようです.上記のパスに変更してダウンロードすればいいです.
すべてのrepoバージョンを表示するには、次の手順に従います.http://code.google.com/p/git-repo/downloads/list?can=1&q=.いずれかのバージョンrepoをダウンロード
いずれにしても、私はrepo-1.19を使い始めましたが、後で公開鍵が見つからない問題があり、長い間振り回しても解決しませんでした.
この問題を解決した経験は、提供方法と原因を歓迎します.
4.空のディレクトリを作ってAndroidソースコードを入れて、最大権限に変更して、このディレクトリに入ることができます
$mkdir ~/Android/Android4.4$sudo chmod –R 777 ~/Android/Android4.4$cd ~/Android/Android4.4
5.repoの初期化
$ repo init -u https://android.googlesource.com/platform/manifest
期間中は名前とメールボックスの検証を記入する必要があります.Googleアカウントとgmailメールボックスを登録します.続行して、ダウンロードするブランチに初期化します.
質問:
ここでエラーを報告する可能性があります.
fatal: Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle
fatal: error [Errno 101] Network is unreachable
解決策:
公式サイトの手順に従って一歩一歩実行する ブラウザでログインhttps://android.googlesource.com/new-passwordを選択し、gmailアカウントにログインします. Webページの「許可」をクリックすると、次のような結果が得られます. machine android.googlesource.com login git-.gmail.com password machine android-review.googlesource.com login git-.gmail.com password 上の2行を~/.netrcファイルの末尾に追加します.(linuxシステムでこのファイルを作成したことがない場合は、ホームディレクトリの下に.netrcファイルを作成し、上の情報を新しいファイルに追加します). ダウンロードアドレスのURIがhttps://android.googlesource.com/a/platform/manifest(真ん中に「/a」が付いています). アクセスは基本的に匿名であるため,接続過多を防止するため,同一IPアドレスの接続数に一定の制限を加えた.使用する gmailアカウントを認証します. 社内ネットワーク内や仮想マシンでダウンロードすると、この問題によく遭遇します.
次に、
$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.4_r1.2
ダウンロードしたいブランチは下記のURLでご覧いただけますhttps://android.googlesource.com/platform/manifest/+refs
6.repo syncを実行して同期する
$repo sync
ダウンロードが完了すると完了し、repoはブレークポイントの継続機能をサポートし、次回は$repo syncダウンロードを再実行できます.スクリプトは自動的に作成できますが、ネット上では比較的多く、以下の1つを提供します.
コメント:
以下はいくつかの問題と解決方法を整理して、みんなが評論の中で一緒に総括して討論することを望みます.
(1)“A new repo command ( 1.18) is available”
解決:ヒントに従って入力すればいい、cp/home/cfy/android/.repo/repo/repo /home/cfy/bin/repo
(2) error: Failed connect to android.googlesource.com:443;
Connection refused while accessing
https://android.googlesource.com/a/platform/frameworks/base/info/refs
fatal: HTTP request failed error: Cannot fetch platform/tools/motodev error: Cannot fetch platform/frameworks/base error: Cannot fetch platform/prebuilts/sdk error: Exited sync due to fetch errors などのエラーメッセージが表示されます.
解決:
/etc/hostsファイルの編集 $ sudo gedit/etc/hosts 次の内容を追加して保存
74.125.237.1 dl-ssl.google.com
74.125.71.82 www.googlesource.com 74.125.31.82 android.googlesource.com 203.208.46.172 cache.pack.google.com 59.24.3.173cache.pack.google.com
注意:
Googleソースのipは変更されるので、次のコマンドを使用します.
$ nslookup googlesource.com
$ nslookup android.googlesource.com
実際のipを表示し、上記のipアドレスを74.125.3.82に従います. Android.googlesource.comフォーマットを/etc/hostsに追加
(3) fatal: '../platform/abi/cpp.git' does not appear to be a git repository fatal: The remote end hung up unexpectedly error: Cannot fetch platform/abi/cpp
解決:
~/JK_WorkSpace/Android/Android Resource/Android 4.4/.repoでの
manifest.xmlでfetch属性を見つけてfetch="に変更git://Android.git.linaro.org「それでいい
(4) fatal: Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle fatal: error [Errno 101] Network is unreachable
解決:
エージェント環境変数による問題は、次のコマンドでエージェントをクリアします. unset HTTP_PROXY
続行...
まず公式サイトの住所を添付します.http://source.android.com/source/initializing.html.上記のアドレスではAndroidの開発環境の構築やソースコードの取得などについて詳しく紹介していますが、その説明次第で完全に解決できます.以下、私は主に自分の取得の過程を紹介します.実は公式サイトの手順の簡素化と私が出会ったいくつかの問題で、後にネットユーザーで出会った問題も収集しました.以下に簡単に説明します.
1.2つのソフトウェアcurlとgitをインストールする
$ sudo apt-get install curl $ sudo apt-get install git-core
2.binフォルダを作成し、環境変数に追加
$ mkdir ~/DevelopHelp/bin $ gedit ~/.bashrc ファイルの最後に環境変数を追加します. export PATH=~/DevelopHelp/bin:$PATH $ source~/.bashrc(環境変数を有効にする)
上記環境変数の設定は現在のユーザにのみ有効です
3.repoツールをダウンロードし、実行可能であることを保証する
$ curl http://git-repo.googlecode.com/files/repo-1.13 > ~/DevelopHelp/bin/repo $ chmod a+x ~/DevelopHelp/bin/repo
公式サイト提供:
$ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
ダウンロードパスにアクセスできないようです.上記のパスに変更してダウンロードすればいいです.
すべてのrepoバージョンを表示するには、次の手順に従います.http://code.google.com/p/git-repo/downloads/list?can=1&q=.いずれかのバージョンrepoをダウンロード
いずれにしても、私はrepo-1.19を使い始めましたが、後で公開鍵が見つからない問題があり、長い間振り回しても解決しませんでした.
この問題を解決した経験は、提供方法と原因を歓迎します.
4.空のディレクトリを作ってAndroidソースコードを入れて、最大権限に変更して、このディレクトリに入ることができます
$mkdir ~/Android/Android4.4$sudo chmod –R 777 ~/Android/Android4.4$cd ~/Android/Android4.4
5.repoの初期化
$ repo init -u https://android.googlesource.com/platform/manifest
期間中は名前とメールボックスの検証を記入する必要があります.Googleアカウントとgmailメールボックスを登録します.続行して、ダウンロードするブランチに初期化します.
質問:
ここでエラーを報告する可能性があります.
fatal: Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle
fatal: error [Errno 101] Network is unreachable
解決策:
公式サイトの手順に従って一歩一歩実行する ブラウザでログインhttps://android.googlesource.com/new-passwordを選択し、gmailアカウントにログインします. Webページの「許可」をクリックすると、次のような結果が得られます. machine android.googlesource.com login git-.gmail.com password machine android-review.googlesource.com login git-.gmail.com password 上の2行を~/.netrcファイルの末尾に追加します.(linuxシステムでこのファイルを作成したことがない場合は、ホームディレクトリの下に.netrcファイルを作成し、上の情報を新しいファイルに追加します). ダウンロードアドレスのURIがhttps://android.googlesource.com/a/platform/manifest(真ん中に「/a」が付いています). アクセスは基本的に匿名であるため,接続過多を防止するため,同一IPアドレスの接続数に一定の制限を加えた.使用する gmailアカウントを認証します. 社内ネットワーク内や仮想マシンでダウンロードすると、この問題によく遭遇します.
次に、
$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.4_r1.2
ダウンロードしたいブランチは下記のURLでご覧いただけますhttps://android.googlesource.com/platform/manifest/+refs
6.repo syncを実行して同期する
$repo sync
ダウンロードが完了すると完了し、repoはブレークポイントの継続機能をサポートし、次回は$repo syncダウンロードを再実行できます.スクリプトは自動的に作成できますが、ネット上では比較的多く、以下の1つを提供します.
#!/bin/bash
echo "======start repo sync======"
repo sync
while [ $? = 1 ]; do
echo "======sync failed, re-sync again======"
sleep 3
repo sync
done
コメント:
以下はいくつかの問題と解決方法を整理して、みんなが評論の中で一緒に総括して討論することを望みます.
(1)“A new repo command ( 1.18) is available”
解決:ヒントに従って入力すればいい、cp/home/cfy/android/.repo/repo/repo /home/cfy/bin/repo
(2) error: Failed connect to android.googlesource.com:443;
Connection refused while accessing
https://android.googlesource.com/a/platform/frameworks/base/info/refs
fatal: HTTP request failed error: Cannot fetch platform/tools/motodev error: Cannot fetch platform/frameworks/base error: Cannot fetch platform/prebuilts/sdk error: Exited sync due to fetch errors などのエラーメッセージが表示されます.
解決:
/etc/hostsファイルの編集 $ sudo gedit/etc/hosts 次の内容を追加して保存
74.125.237.1 dl-ssl.google.com
74.125.71.82 www.googlesource.com 74.125.31.82 android.googlesource.com 203.208.46.172 cache.pack.google.com 59.24.3.173cache.pack.google.com
注意:
Googleソースのipは変更されるので、次のコマンドを使用します.
$ nslookup googlesource.com
$ nslookup android.googlesource.com
実際のipを表示し、上記のipアドレスを74.125.3.82に従います. Android.googlesource.comフォーマットを/etc/hostsに追加
(3) fatal: '../platform/abi/cpp.git' does not appear to be a git repository fatal: The remote end hung up unexpectedly error: Cannot fetch platform/abi/cpp
解決:
~/JK_WorkSpace/Android/Android Resource/Android 4.4/.repoでの
manifest.xmlでfetch属性を見つけてfetch="に変更git://Android.git.linaro.org「それでいい
(4) fatal: Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle fatal: error [Errno 101] Network is unreachable
解決:
エージェント環境変数による問題は、次のコマンドでエージェントをクリアします. unset HTTP_PROXY
続行...