我安装了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
任何建议都会有所帮助
答案 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的正确位置。该文件夹中还有一个示例,向您展示它应该是什么样子。
如果这没有帮助,我会建议您显示更多导致此错误的跟踪。欢迎提供更多信息,因为您提供的信息并不多。