3

ここに記載されている手順で Android ソースをビルドしようとしています。ただし、JDK に問題があります。起動時:

lunch full-eng

次のエラーが表示されます。

/bin/bash: prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.7/bin/arm-linux-androideabi-gcc: Permission denied
/bin/bash: prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.7/bin/arm-linux-androideabi-gcc: Permission denied
/bin/bash: prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.7/bin/arm-linux-androideabi-gcc: Permission denied
/bin/bash: build/core/find-jdk-tools-jar.sh: Permission denied
build/core/config.mk:344: *** Error: could not find jdk tools.jar, please install JDK6, which you can download from java.sun.com.  Stop.    
** Don't have a product spec for: 'full'
** Do you have the right repo manifest?

そこで、次の手順で JDK を正しくインストールしようとしました。


ステップ1

次の手順に従って、 JAVA 関連のすべてをアンインストールします。

ステップ2

次の手順に従って、正しい JAVA をインストールします。デフォルトのインストーラ オプションとバージョン 6 を使用しました。7 または 8 ではありません。

ステップ 3

ここでは、単にこの答えに従っています。

sudo gedit .bashrc

これらの行を追加して、下部のファイルを編集します

JAVA_HOME=/usr/lib/jvm/java-6-oracle
export JAVA_HOME

# replacing /path/to/androidsdk/ with correct path of course..
export PATH=${PATH}:/path/to/androidsdk/android-sdk-linux/platform-tools

PATH=$PATH:$JAVA_HOME

# Variable ANDROID_JAVA_HOME
ANDROID_JAVA_HOME=/usr/lib/jvm/java-6-oracle
export ANDROID_JAVA_HOME

PATH=$PATH:$ANDROID_JAVA_HOME

ステップ 4

これまでに行ったことをテストします。

...:~$ echo $JAVA_HOME
/usr/lib/jvm/java-6-oracle
...:~$ java -version
java version "1.6.0_45"
Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
Java HotSpot(TM) Server VM (build 20.45-b01, mixed mode)
...:~$ which java
/usr/bin/java
...:~$ echo $ANDROID_JAVA_HOME
/usr/lib/jvm/java-6-oracle
...:~$ echo $PATH
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/lib/jvm/java-6-oracle/bin:/usr/lib/jvm/java-6-oracle/db/bin:/usr/lib/jvm/java-6-oracle/jre/bin:/path/to/androidsdk/android-sdk-linux/platform-tools:/usr/lib/jvm/java-6-oracle

ステップ 5

ターミナルで Android ソース フォルダに移動し、次のように入力します。

source build/envsetup.sh

結果:

including device/asus/grouper/vendorsetup.sh
including device/asus/tilapia/vendorsetup.sh
including device/generic/armv7-a-neon/vendorsetup.sh
including device/generic/armv7-a/vendorsetup.sh
including device/generic/mips/vendorsetup.sh
including device/generic/x86/vendorsetup.sh
including device/lge/mako/vendorsetup.sh
including device/samsung/maguro/vendorsetup.sh
including device/samsung/manta/vendorsetup.sh
including device/samsung_slsi/arndale/vendorsetup.sh
including device/samsung/toroplus/vendorsetup.sh
including device/samsung/toro/vendorsetup.sh
including device/ti/panda/vendorsetup.sh

ステップ 6

ターミナルで Android ソース フォルダに移動し、次のように入力します。

lunch full-eng

結果:

.../androidsource$ lunch full-eng
/bin/bash: prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.7/bin/arm-linux-androideabi-gcc: Permission denied
/bin/bash: prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.7/bin/arm-linux-androideabi-gcc: Permission denied
/bin/bash: prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.7/bin/arm-linux-androideabi-gcc: Permission denied
/bin/bash: build/core/find-jdk-tools-jar.sh: Permission denied
build/core/config.mk:344: *** Error: could not find jdk tools.jar, please install JDK6, which you can download from java.sun.com.  Stop.

** Don't have a product spec for: 'full'
** Do you have the right repo manifest?

私は何を間違えましたか?何が欠けている?「許可が拒否されました」はどうですか?

4

5 に答える 5

8

私は同じ問題を抱えていました。Androidソースコードフォルダー全体のファイルパーミッションを変更して解決しました:

sudo chmod 755 -R ~/Android
于 2013-12-28T05:42:57.217 に答える
2

同じ問題もありましたが、パーティションから実行できなかったため、NTFS の問題が原因でした。これが私が見つけた修正です。

https://askubuntu.com/questions/164847/cant-compile-in-ntfs-partition

于 2014-02-15T21:19:07.180 に答える
1

通常、これは javac がシステムの代替として構成されていないことが原因です。そのため、javac の /usr/bin/javac へのリンクはありません。

次のコマンドを使用して、javac の代替をセットアップしてください。

$ sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk1.6.0_32/bin/javac" 1

注: javac のインストール ディレクトリは "/usr/lib/jvm/jdk1.6.0_32/" です。構成によって変更できます。

于 2013-10-10T05:43:46.207 に答える
0

私も同じ状況に遭遇しました。root ユーザーをアクティブにしてログインし、 http://source.android.com/source/building.htmlサイトで言及されていることと同じことを行いましたが、問題なく動作しました。

于 2014-03-19T13:29:49.750 に答える