编辑三:
重新运行build_native.sh(编辑后两次)
这次它运行顺利,CCCommon.cpp没有问题,我甚至看到libGame.so最终正在构建(即使在libs下的android项目中)。
但是我在下面的EDIT TWO中的Android.mk文件中仍然遇到同样的问题(请查看图片)。
我是否越来越近,在某个地方错过了一些步骤?
编辑二:
遵循Vikas的建议,博客和链接文件夹(Thankyou Vikas!):
我在项目的Android.mk文件中发现了一个错误。
以下是它的外观图像:
我还添加了我的build_native.sh看起来的参考资料,万一有什么东西搞砸了:
build_native.sh:
# set params
NDK_ROOT = / cygdrive / C /机器人-NDK-R9C COCOS2DX_ROOT = / cygdrive / C /用户/ DarkRaveDev /文档/ cocos2d的-X-2.0.1 GAME_ROOT = $ COCOS2DX_ROOT / CHAARA GAME_ANDROID_ROOT = $ GAME_ROOT / proj.android RESOURCE_ROOT = $ GAME_ROOT /资源
buildexternalsfromsource =
使用(){ 猫<< EOF 用法:$ 0 [选项]
使用Android NDK构建C / C ++本机代码
OPTIONS: -s从源代码构建外部 这个帮助 EOF }
而getopts的“选择”;做 案例“$ OPTION”in S) buildexternalsfromsource = 1 ;; H) 用法 退出0 ;; ESAC 完成
# make sure assets is exist
if [-d $ GAME_ANDROID_ROOT / assets];然后 rm -rf $ GAME_ANDROID_ROOT / assets 网络
mkdir $ GAME_ANDROID_ROOT / assets
# copy resources
for $ RESOURCE_ROOT / *中的文件 做 if [-d“$ file”];然后 cp -rf“$ file”$ GAME_ANDROID_ROOT / assets 网络
if [ -f "$file" ]; then
cp "$file" $GAME_ANDROID_ROOT/assets
fi
完成
# copy icons (if they exist)
文件= $ GAME_ANDROID_ROOT /资产/图标-72.png if [-f“$ file”];然后 cp $ file $ GAME_ANDROID_ROOT / res / drawable-hdpi / icon.png 科幻 文件= $ GAME_ANDROID_ROOT /资产/ ICON-48.png if [-f“$ file”];然后 cp $ file $ GAME_ANDROID_ROOT / res / drawable-mdpi / icon.png 科幻 文件= $ GAME_ANDROID_ROOT /资产/ ICON-32.png if [-f“$ file”];然后 cp $ file $ GAME_ANDROID_ROOT / res / drawable-ldpi / icon.png 网络
if [[$ buildexternalsfromsource]];然后 echo“从源代码构建外部依赖项” $ NDK_ROOT / ndk-build -C $ GAME_ANDROID_ROOT \ NDK_MODULE_PATH = $ {} COCOS2DX_ROOT:$ {} COCOS2DX_ROOT / cocos2dx /平台/ THIRD_PARTY /安卓/源 其他 echo“使用预建的外部” $ NDK_ROOT / ndk-build -C $ GAME_ANDROID_ROOT \ NDK_MODULE_PATH = $ {} COCOS2DX_ROOT:$ {} COCOS2DX_ROOT / cocos2dx /平台/ THIRD_PARTY /安卓/预建 网络
END-OF-build_native.sh ----------------------
我可以缺少哪一步?
编辑一个:
在根据Vikas的评论建议后,我想出了以下结果:
日志显示CCCommon.cpp编译问题(不显示libGame.so的创建):
从Logcat(Android)登录显示无法找到库错误(libs文件夹丢失.so文件):
背景
我在我的设备上运行 - 三星s3 4.3
我正在使用本教程:Building Monetizing Game Apps on Android by Todd Perkins
我已经达到了:
安装Cygwin
运行create-android-project.bat让它成为我的android项目
在Cygwin中运行build_native.sh并使其生成所需的所有.cpp文件。
问题:
01-08 14:48:44.644: E/AndroidRuntime(25750): java.lang.UnsatisfiedLinkError: Couldn't load game from loader dalvik.system.PathClassLoader[dexPath=/data/app/com.chaara.darkravedev-2.apk,libraryPath=/data/app-lib/com.chaara.darkravedev-2]: findLibrary returned null
现在我已经停留了一段时间,最常见的解决方案是重新运行或确保您没有忘记运行build_native.sh文件。
它似乎正在寻找的库是libGame.so(根据SO),它应该在你的project / libs / armeabi文件夹中找到 - 对我来说它不存在。
到目前为止我做了什么:
当我回顾libs文件夹时,只有这两个文件:
问题:
为什么我的libGame.so文件没有被构建?
其他信息:
使用System.loadLibrary(“游戏”)崩溃了;
我正在使用ndk r9,而教程使用的是ndk r8