由于查找apk引起的Couldn't load cocos2dcpp: findLibrary returned null错误

来源:互联网 发布:手机添加网络怎么设置 编辑:程序博客网 时间:2024/05/17 22:52

问题描述:我把工程编译一遍后,弄到三星手机上,正常运行,当我把游戏卸载后,再次run as安装,发现不可运行了.提示如上信息.

调试时,可以加上异常处理:

 static {    try    {    System.loadLibrary("cocos2dcpp");    }catch(UnsatisfiedLinkError ule)    {    Log.e("***找不到cocos2dcpp库文件***", "***找不到cocos2dcpp库文件***");    }    }   
解决方案:

1,在Application.mk里面添加以下语句,便可以生成三个文件夹:

TARGET_CPU_API := armeabiAPP_ABI := armeabi armeabi-v7a x86

2,在libs下新建一个armeabi-v7a文件夹,将libcocos2dcpp.so放入到里面就行了.


总结:但是我在加入其它第三方平台时,比如依然用三星平板,就没遇到过这个问题.看调试信息,主要问题出在:

public static void init(final Context pContext, final Cocos2dxHelperListener pCocos2dxHelperListener) {final ApplicationInfo applicationInfo = pContext.getApplicationInfo();Cocos2dxHelper.sContext = pContext;Cocos2dxHelper.sCocos2dxHelperListener = pCocos2dxHelperListener;Cocos2dxHelper.sPackageName = applicationInfo.packageName;Cocos2dxHelper.sFileDirectory = pContext.getFilesDir().getAbsolutePath();Cocos2dxHelper.nativeSetApkPath(applicationInfo.sourceDir);  //此处本地方法没有实现Cocos2dxHelper.sCocos2dxAccelerometer = new Cocos2dxAccelerometer(pContext);Cocos2dxHelper.sCocos2dMusic = new Cocos2dxMusic(pContext);Cocos2dxHelper.sCocos2dSound = new Cocos2dxSound(pContext);Cocos2dxHelper.sAssetManager = pContext.getAssets();Cocos2dxBitmap.setContext(pContext);Cocos2dxETCLoader.setContext(pContext);}

中的:nativeSetApkPath,总是提示该方法没有实现.但是我把该本地cpp所在的类编译进去后,却提示我重复编译了.后来想了想: 这个平台和别的平台不同之处在于:这里要查找apk,别的平台没有. 我搜索问题查到:会优先查找路径armeabi-v7a,所以突破点是:果断在libs下面建立新的文件夹,application.mk下面增加新的命令后,问题得以解决.



0 0
原创粉丝点击