3

Android sdk バージョンと Andorid ndk をインストールしました。Android SDK と AVD Manager を使用して、SDK Plaform Android 2.2、API8、rev3 および 1.6、API4、revsion3 をインストールしました。

rake run:android を試すと、次のエラーが表示されました

D:/Android_ndk/toolchains/arm-linux-androideabi-4.4.3/prebuilt/windows/bin/../lib/gcc/arm-linux-android
eabi/4.4.3/../../../../arm-linux-androideabi/bin/ld.exe: crtbegin_so.o: No such file: No such file or directory
collect2: ld returned 1 exit status 

どんな提案も役に立ちます

4

3 に答える 3

10

NDK の 6b バージョンにエラーがあるようです。バージョン 6 にフォールバックします (Mac バージョンはhttp://dl.google.com/android/ndk/android-ndk-r6-darwin-x86.tar.bz2です。Windows と Linux は同様です)。それを解凍し、どこかに置き、 rhodes-setup ユーティリティを実行して、新しい NDK がどこにあるかを伝えます。これで準備完了です。

于 2011-09-13T20:30:18.063 に答える
2

この問題は NDK r7c(linux) でも発生します。

ツールチェーンがプラットフォームの場所($NDK_ROOT/platforms/android-8/arch-arm/usr/lib/)を無視し、ツールチェーン パスでそれを検索することがわかりましたが、これは正しくありません。

ただし、ツールチェーンは現在のディレクトリ内のファイルも検索するため、1 つの解決策は、正しいプラットフォームの crtbegin_so.o および crtend_so.o をソース ディレクトリにリンクすることです。

cd src && ln -s NDK_ROOT/platforms/android-8/arch-arm/usr/lib/crtbegin_so.a

cd src && ln -s NDK_ROOT/platforms/android-8/arch-arm/usr/lib/crtend_so.a

注1:この回答はロードスに固有のものではありません

注 2:これは、コードが API8 (Android 2.2) 用にコンパイルされていることを前提としています。必要に応じて、正しいプラットフォームへのパスを変更してください。

注 3:使用されるフラグを構成します。

./configure \
--host=arm-linux-androideabi \
CC=arm-linux-androideabi-gcc \
CPPFLAGS="-I$NDK_ROOT/platforms/android-8/arch-arm/usr/include/" \
CFLAGS="-nostdlib" \
LDFLAGS="-Wl,-rpath-link=$NDK_ROOT/platforms/android-8/arch-arm/usr/lib/ -L$NDK_ROOT/platforms/android-8/arch-arm/usr/lib/" \
LIBS="-lc"
于 2012-04-24T09:10:52.240 に答える
0

正しい方向を示しているかどうかはわかりませんが、Rhodes アプリケーションが SDK や AVD などのファイルを探していて、それらを見つけることができないようです。

まず、プロジェクトの build.yml が Rhodes フォルダーを指していることを確認してください。sample-api には、デフォルトではこれが正しく設定されていません。

また、Rhodes フォルダーで、rhobuild.yml に SDK と AVD の正しい場所があることを確認します。そのフォルダーには、どのように見えるかを示す例もあります。

これで問題が解決しない場合は、このエラーにつながるトレースをさらに表示することをお勧めします。あなたが与えたものはあまり役に立たないので、これ以上の情報は大歓迎です。

于 2011-09-13T14:59:03.393 に答える