无法运行示例rhodes应用程序

时间:2011-09-13 10:10:20

标签: android ruby rhodes

我安装了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 

任何建议都会有所帮助

3 个答案:

答案 0 :(得分:10)

NDB的6b版本似乎有错误。回到版本6(Mac版本在这里http://dl.google.com/android/ndk/android-ndk-r6-darwin-x86.tar.bz2,Windows和Linux将类似)。 打开它,把它放在某个地方,然后运行rhodes-setup实用程序并告诉它新的NDK在哪里 - 你应该好好去。

答案 1 :(得分:2)

此问题也出现在NDK r7c(linux)上。

我发现工具链忽略了平台位置($ NDK_ROOT / platforms / android-8 / arch-arm / usr / lib /)并在工具链路径中搜索它,这是不正确的

但是,由于工具链还在当前目录中搜索文件,因此一种解决方案是将正确的平台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:此答案并非特定于rhodes

注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"

答案 2 :(得分:0)

不确定我是否指向正确的方向,但您的Rhodes应用程序似乎正在寻找SDK和AVD等文件而无法找到它们。

首先,确保项目中的build.yml指向Rhodes文件夹。默认情况下,sample-api没有正确设置。

此外,在Rhodes文件夹中,确保rhobuild.yml具有SDK和AVD的正确位置。该文件夹中还有一个示例,向您展示它应该是什么样子。

如果这没有帮助,我会建议您显示更多导致此错误的跟踪。欢迎提供更多信息,因为您提供的信息并不多。