【发布时间】:2014-11-10 21:28:29
【问题描述】:
我查看了很多有类似问题的帖子(见下文),但似乎没有什么对我有用。
我的 cocos2d-x "HelloCpp" 测试应用 (V 2.2.5) 无法运行;据我所知,它在启动后立即崩溃,在创建表面之前。
我尝试在How to set up the Android Cocos2d-x development environment on Windows 7 中设置 Cocos2d-x 测试项目“HelloCpp” - 一个小的区别是我在 Win8.1 64 位 Eclipse Juno 上运行。我终于可以毫无错误地构建一切。
在设置 NDK 位置出现一些初始问题后,我还运行了 build_native.sh。现在似乎可以正常运行了。
据我了解,Logcat 输出的关键部分是:
11-10 16:08:37.221: E/AndroidRuntime(2024): java.lang.UnsatisfiedLinkError:无法从加载程序加载 hellocpp dalvik.system.PathClassLoader[DexPathList[[zip 文件 "/data/app/org.cocos2dx.hellocpp-2.apk"],nativeLibraryDirectories=[/data/app-lib/org.cocos2dx.hellocpp-2, /system/lib]]]: findLibrary 返回 null
我明白获取 c++ 库似乎有问题。
然而,与其他一些帖子不同,我确实在 lib/armeabi 中有 hellocpp.so。
与这里(Cocos2D-x sample application crashes on launch)不同,我已经构建了 libcocos2dx 项目,并且在 bin/res 目录中有 libcocos2dx.jar。
另外,在构建项目时,我在输出中没有看到任何有用的信息,输出为:
19:08:36 **** 项目默认配置的增量构建 你好Cpp **** bash C:/Users/Philipp/work/fat_fishin_2/cocos2d-x-2.2.5/samples/Cpp/HelloCpp/proj.android/build_native.sh NDK_ROOT = /cygdrive/c/devenv/android/android-ndk COCOS2DX_ROOT = /cygdrive/c/Users/Philipp/work/fat_fishin_2/cocos2d-x-2.2.5/samples/Cpp/HelloCpp/proj.android/../../../.. APP_ROOT = /cygdrive/c/Users/Philipp/work/fat_fishin_2/cocos2d-x-2.2.5/samples/Cpp/HelloCpp/proj.android/.. APP_ANDROID_ROOT = /cygdrive/c/Users/Philipp/work/fat_fishin_2/cocos2d-x-2.2.5/samples/Cpp/HelloCpp/proj.android 使用预构建的外部组件 + /cygdrive/c/devenv/android/android-ndk/ndk-build -C /cygdrive/c/Users/Philipp/work/fat_fishin_2/cocos2d-x-2.2.5/samples/Cpp/HelloCpp/proj.android NDK_MODULE_PATH=/cygdrive/c/Users/Philipp/work/fat_fishin_2/cocos2d-x-2.2.5/samples/Cpp/HelloCpp/proj.android/../../../..:/cygdrive/c/用户/Philipp/work/fat_fishin_2/cocos2d-x-2.2.5/samples/Cpp/HelloCpp/proj.android/../../../../cocos2dx/platform/third_party/android/prebuilt make: 进入目录 '/cygdrive/c/Users/Philipp/work/fat_fishin_2/cocos2d-x-2.2.5/samples/Cpp/HelloCpp/proj.android' 安卓 NDK: 警告:/cygdrive/c/Users/Philipp/work/fat_fishin_2/cocos2d-x-2.2.5/samples/Cpp/HelloCpp/proj.android/../../../../cocos2dx/Android.mk :cocos2dx_static: 静态库总是忽略 LOCAL_LDLIBS [armeabi] 安装:libhellocpp.so => libs/armeabi/libhellocpp.so 使: 离开目录 '/cygdrive/c/Users/Philipp/work/fat_fishin_2/cocos2d-x-2.2.5/samples/Cpp/HelloCpp/proj.android'
19:08:38 构建完成(耗时 1s.443ms)
当我在 cygwin 终端运行 build_native.sh 时,也没有错误。
我尝试了不同的 NDK - 10c 和 9d。结果是一样的。
由于我缺乏严格的编程技能,我遇到了一些错误,但我能够在所有这些错误的帖子中找到帮助。然而,这对我来说没有意义,因为构建似乎没有引发错误,但无法读取 cpp 库。
请帮忙。
谢谢!
【问题讨论】:
-
编译脚本的结果如何?
-
你的意思是 build-native.sh 吗?我似乎运行正确。唯一引起我注意的是:“Android NDK:警告:/cygdrive/c/Users/Philipp/work/fat_fishin_2/cocos2d-x-2.2.5/samples/Cpp/HelloCpp/proj.android/../ ../../../cocos2dx/Android.mk:cocos2dx_static:对于静态库,LOCAL_LDLIBS 总是被忽略”
标签: android c++ android-ndk cocos2d-x unsatisfiedlinkerror