即使在Cygwin中运行build_native.sh之后也找不到libGame.so?

时间:2014-01-08 20:12:43

标签: android cygwin cocos2d-x

编辑三:

重新运行build_native.sh(编辑后两次

这次它运行顺利,CCCommon.cpp没有问题,我甚至看到libGame.so最终正在构建(即使在libs下的android项目中)。

但是我在下面的EDIT TWO中的Android.mk文件中仍然遇到同样的问题(请查看图片)。

我是否越来越近,在某个地方错过了一些步骤?

编辑二:

遵循Vikas的建议,博客和链接文件夹(Thankyou Vikas!):

我在项目的Android.mk文件中发现了一个错误。

以下是它的外观图像: enter image description here

我还添加了我的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的评论建议后,我想出了以下结果:

  1. 我删除了我的android项目中的obj文件夹。
  2. 重新运行build_native.sh
  3. 注意到CCCommon.cpp没有按预期编译。
  4. 日志显示CCCommon.cpp编译问题(不显示libGame.so的创建):

    enter image description here

    从Logcat(Android)登录显示无法找到库错误(libs文件夹丢失.so文件):

    enter image description here

    背景

    我在我的设备上运行 - 三星s3 4.3

    我正在使用本教程:Building Monetizing Game Apps on Android by Todd Perkins

    我已经达到了:

    1. 安装Cygwin

    2. 运行create-android-project.bat让它成为我的android项目

    3. 在Cygwin中运行build_native.sh并使其生成所需的所有.cpp文件。

    4. 导入的android项目没有错误 YAY!
    5. 问题:

      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文件夹中找到 - 对我来说它不存在。

      到目前为止我做了什么:

      1. 重新运行build_native.sh:
      2. After minSDK mismatch changed minSDK to 9 in AndroidManifest.xml

        当我回顾libs文件夹时,只有这两个文件:

        enter image description here

        问题:

        为什么我的libGame.so文件没有被构建?

        其他信息:

        使用System.loadLibrary(“游戏”)崩溃了;

        我正在使用ndk r9,而教程使用的是ndk r8

0 个答案:

没有答案