cocos2d-x 集成移动游戏基地 sdk包 cmgame 遇到的问题



在cocos2d-x 集成 cmgame时,有时会遇到这个错误


02-26 16:51:18.565: W/dalvikvm(16222): JNI WARNING: JNI method called with exception pending
02-26 16:51:18.565: W/dalvikvm(16222):              in Ljava/lang/Runtime;.nativeLoad:(Ljava/lang/String;Ljava/lang/ClassLoader;)Ljava/lang/String; (RegisterNatives)
02-26 16:51:18.565: W/dalvikvm(16222): Pending exception is:
02-26 16:51:18.565: I/dalvikvm(16222): java.lang.NoClassDefFoundError: com/ir/gc/CustomContentProvider
02-26 16:51:18.565: I/dalvikvm(16222): at java.lang.Runtime.nativeLoad(Native Method)
02-26 16:51:18.566: I/dalvikvm(16222): at java.lang.Runtime.loadLibrary(Runtime.java:368)
02-26 16:51:18.566: I/dalvikvm(16222): at java.lang.System.loadLibrary(System.java:535)
02-26 16:51:18.566: I/dalvikvm(16222): at com.letu.cocos2dxTest.CmgameApplication.onCreate(CmgameApplication.java:13)
02-26 16:51:18.569: I/dalvikvm(16222): at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:969)
02-26 16:51:18.569: I/dalvikvm(16222): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4115)
02-26 16:51:18.569: I/dalvikvm(16222): at android.app.ActivityThread.access$1300(ActivityThread.java:134)
02-26 16:51:18.569: I/dalvikvm(16222): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1285)
02-26 16:51:18.569: I/dalvikvm(16222): at android.os.Handler.dispatchMessage(Handler.java:99)
02-26 16:51:18.569: I/dalvikvm(16222): at android.os.Looper.loop(Looper.java:154)
02-26 16:51:18.569: I/dalvikvm(16222): at android.app.ActivityThread.main(ActivityThread.java:4624)
02-26 16:51:18.569: I/dalvikvm(16222): at java.lang.reflect.Method.invokeNative(Native Method)
02-26 16:51:18.569: I/dalvikvm(16222): at java.lang.reflect.Method.invoke(Method.java:511)
02-26 16:51:18.569: I/dalvikvm(16222): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:809)
02-26 16:51:18.569: I/dalvikvm(16222): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:576)
02-26 16:51:18.569: I/dalvikvm(16222): at dalvik.system.NativeStart.main(Native Method)
02-26 16:51:18.569: I/dalvikvm(16222): Caused by:
02-26 16:51:18.569: I/dalvikvm(16222): java.lang.ClassNotFoundException: com.ir.gc.CustomContentProvider
02-26 16:51:18.569: I/dalvikvm(16222): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
02-26 16:51:18.569: I/dalvikvm(16222): at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
02-26 16:51:18.569: I/dalvikvm(16222): at java.lang.ClassLoader.loadClass(ClassLoader.java:461)


原因时我的libmegjb.so不是直接拷贝到libs下面的,而是在jni下的prebuilt下面 预编的


经过预编义,libmegij.so会被 strip ,丢失一些符号或者ndk认为没用的东西


找了本办法:

写一个脚本

mybuild.sh

#!/bin/sh


/Users/yangzheng/Installation/Android/android-ndk-r8e/ndk-build $@

cp jni/prebuilt/libmegjb.so libs/armeabi



嘿嘿,其实就是执行完ndk-build后自己拷贝一份libmegjb.so

然后让eclipse的Build command 里 改成 执行 mybuild.sh

ok,问题解决


其实这是办法,应该想办法让ndk在prebuilt的时候不要strip,但是还没找到合适的方法,所以就先这样弄了



评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值