GVKun编程网logo

cocos2d-x编译问题集合 error C2440: “类型转换”: 无法从“void (__thiscall xx::* )(void)”转换为“cocos2d::SEL_CallFuncN”

7

本文将介绍cocos2d-x编译问题集合errorC2440:“类型转换”:无法从“void(__thiscallxx::*)(void)”转换为“cocos2d::SEL_CallFuncN”的详细

本文将介绍cocos2d-x编译问题集合 error C2440: “类型转换”: 无法从“void (__thiscall xx::* )(void)”转换为“cocos2d::SEL_CallFuncN”的详细情况,。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,同时也将涉及一些关于android studio 编译 cocos2dx C++ 遇到 Error: Can''t find bundle for base name messages.AndroidJpsBundle, locale zh_CN、Bullet(Cocos2dx)之交叉编译Android,集成到cocos2dx3.x、cocos2d android分析之-libcocos2dlua.so库、Cocos2d-android (01) 创建一个简单的 cocos2d 应用程序的知识。

本文目录一览:

cocos2d-x编译问题集合 error C2440: “类型转换”: 无法从“void (__thiscall xx::* )(void)”转换为“cocos2d::SEL_CallFuncN”

cocos2d-x编译问题集合 error C2440: “类型转换”: 无法从“void (__thiscall xx::* )(void)”转换为“cocos2d::SEL_CallFuncN”

项目从cocos2d-x2.14移植到cocos2d-x2.26版本后出现的问题。(在Xcode下可以编译通过,在vs2012中报错)
转载:http://www.jb51.cc/article/p-mmpkspfv-ey.html
1.提示为
error C2440: “类型转换”: 无法从“void (__thiscall xx::* )(void)”转换为“cocos2d::SEL_CallFuncN”
提示前 调用语句为
callfuncN_selector(GameMenu::menuEnter)
menuEnter这个方法里边是没有形参的 导致了这个问题出现
修改办法为
将menuEnter这个方法改成menuEnter(CCNode * node) 加入这个形参即可
2.提示为
error C2440: “类型转换”: 无法从“void (__thiscall xx::* )(void)”转换为“cocos2d::SEL_SCHEDULE” 解决办法同上 但是需要将方法的形参换成 float dt 就可以了

android studio 编译 cocos2dx C++ 遇到 Error: Can''t find bundle for base name messages.AndroidJpsBundle, locale zh_CN

android studio 编译 cocos2dx C++ 遇到 Error: Can''t find bundle for base name messages.AndroidJpsBundle, locale zh_CN

Error:Android Source Generator: Error: Can''t find bundle for base name messages.AndroidJpsBundle, locale zh_CN
java.util.MissingResourceException: Can''t find bundle for base name messages.AndroidJpsBundle, locale zh_CN
 at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1564)
 at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1387)
 at java.util.ResourceBundle.getBundle(ResourceBundle.java:773)
 at org.jetbrains.jps.android.AndroidJpsBundle.getBundle(AndroidJpsBundle.java:22)
 at org.jetbrains.jps.android.AndroidJpsBundle.message(AndroidJpsBundle.java:32)
 at org.jetbrains.jps.android.AndroidSourceGeneratingBuilder.runAidlCompiler(AndroidSourceGeneratingBuilder.java:688)
 at org.jetbrains.jps.android.AndroidSourceGeneratingBuilder.doBuild(AndroidSourceGeneratingBuilder.java:198)
 at org.jetbrains.jps.android.AndroidSourceGeneratingBuilder.build(AndroidSourceGeneratingBuilder.java:114)
 at org.jetbrains.jps.incremental.IncProjectBuilder.runModuleLevelBuilders(IncProjectBuilder.java:1263)
 at org.jetbrains.jps.incremental.IncProjectBuilder.runBuildersForChunk(IncProjectBuilder.java:940)
 at org.jetbrains.jps.incremental.IncProjectBuilder.buildTargetsChunk(IncProjectBuilder.java:1012)
 at org.jetbrains.jps.incremental.IncProjectBuilder.buildChunkIfAffected(IncProjectBuilder.java:903)
 at org.jetbrains.jps.incremental.IncProjectBuilder.buildChunks(IncProjectBuilder.java:736)
 at org.jetbrains.jps.incremental.IncProjectBuilder.runBuild(IncProjectBuilder.java:384)
 at org.jetbrains.jps.incremental.IncProjectBuilder.build(IncProjectBuilder.java:192)
 at org.jetbrains.jps.cmdline.BuildRunner.runBuild(BuildRunner.java:138)
 at org.jetbrains.jps.cmdline.BuildSession.runBuild(BuildSession.java:295)
 at org.jetbrains.jps.cmdline.BuildSession.run(BuildSession.java:125)
 at org.jetbrains.jps.cmdline.BuildMain$MyMessageHandler.lambda$channelRead0$0(BuildMain.java:236)
 at org.jetbrains.jps.service.impl.SharedThreadPoolImpl.lambda$executeOnPooledThread$0(SharedThreadPoolImpl.java:42)
 at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
 at java.util.concurrent.FutureTask.run(FutureTask.java:266)
 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
 at java.lang.Thread.run(Thread.java:745)
 

Bullet(Cocos2dx)之交叉编译Android,集成到cocos2dx3.x

Bullet(Cocos2dx)之交叉编译Android,集成到cocos2dx3.x

Bullet(Cocos2dx)之交叉编译Android,集成到cocos2dx3.x

分类: cocos2d-x Android 物理引擎 2014-12-30 20:17 86人阅读 评论(0) 收藏 举报
cocos2dx bullet

首先将src文件夹复制到jni文件夹,没有可以新建一个

新建两个文件Android.mkApplication.mk

Application.mk内容如下:

APP_ABI:=armeabiarmeabi-v7ax86

APP_PLATFORM:=android-8

APP_STL:=stlport_static

Android.mk内容如下:

LOCAL_PATH:=$(callmy-dir)

include$(CLEAR_VARS)

LOCAL_MODULE :=bullet_static(可随便起)

LOCAL_MODULE_FILENAME:=libbullet(可随便起)

LOCAL_C_INCLUDES:=src/(头文件位置)

(源文件,要列出所有用到的,这里用到BulletSoftBodyBulletDynamics

BulletCollisionsLinearMath

[cpp] view plain copy
  • LOCAL_SRC_FILES:=src/BulletSoftBody/btSoftBody.cpp\
  • src/BulletSoftBody/btSoftBodyConcaveCollisionAlgorithm.cpp\
  • src/BulletSoftBody/btSoftBodyHelpers.cpp\
  • src/BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.cpp\
  • src/BulletSoftBody/btSoftRigidCollisionAlgorithm.cpp\
  • src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp\
  • src/BulletSoftBody/btSoftSoftCollisionAlgorithm.cpp\
  • src/BulletSoftBody/btDefaultSoftBodySolver.cpp\
  • src/BulletDynamics/Character/btKinematicCharacterController.cpp\
  • src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp\
  • src/BulletDynamics/ConstraintSolver/btContactConstraint.cpp\
  • src/BulletDynamics/ConstraintSolver/btFixedConstraint.cpp\
  • src/BulletDynamics/ConstraintSolver/btGearConstraint.cpp\
  • src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp\
  • src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.cpp\
  • src/BulletDynamics/ConstraintSolver/btGeneric6DofSpring2Constraint.cpp\
  • src/BulletDynamics/ConstraintSolver/btHinge2Constraint.cpp\
  • src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp\
  • src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp\
  • src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp\
  • src/BulletDynamics/ConstraintSolver/btNNCGConstraintSolver.cpp\
  • src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp\
  • src/BulletDynamics/ConstraintSolver/btSolve2LinearConstraint.cpp\
  • src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp\
  • src/BulletDynamics/ConstraintSolver/btUniversalConstraint.cpp\
  • src/BulletDynamics/Dynamics/btdiscreteDynamicsWorld.cpp\
  • src/BulletDynamics/Dynamics/btRigidBody.cpp\
  • src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp\
  • src/BulletDynamics/Vehicle/btRaycastVehicle.cpp\
  • src/BulletDynamics/Vehicle/btWheelInfo.cpp\
  • src/BulletDynamics/Featherstone/btMultiBody.cpp\
  • src/BulletDynamics/Featherstone/btMultiBodyConstraintSolver.cpp\
  • src/BulletDynamics/Featherstone/btMultiBodyDynamicsWorld.cpp\
  • src/BulletDynamics/Featherstone/btMultiBodyJointLimitConstraint.cpp\
  • src/BulletDynamics/Featherstone/btMultiBodyConstraint.cpp\
  • src/BulletDynamics/Featherstone/btMultiBodyPoint2Point.cpp\
  • src/BulletDynamics/Featherstone/btMultiBodyJointMotor.cpp\
  • src/BulletDynamics/MLcpsolvers/btDantzigLCP.cpp\
  • src/BulletDynamics/MLcpsolvers/btMLcpsolver.cpp\
  • src/BulletDynamics/MLcpsolvers/btLemkeAlgorithm.cpp\
  • src/BulletCollision/broadphaseCollision/btAxisSweep3.cpp\
  • src/BulletCollision/broadphaseCollision/btbroadphaseProxy.cpp\
  • src/BulletCollision/broadphaseCollision/btCollisionAlgorithm.cpp\
  • src/BulletCollision/broadphaseCollision/btDbvt.cpp\
  • src/BulletCollision/broadphaseCollision/btDbvtbroadphase.cpp\
  • src/BulletCollision/broadphaseCollision/btdispatcher.cpp\
  • src/BulletCollision/broadphaseCollision/btMultiSapbroadphase.cpp\
  • src/BulletCollision/broadphaseCollision/btOverlappingPairCache.cpp\
  • src/BulletCollision/broadphaseCollision/btQuantizedBvh.cpp\
  • src/BulletCollision/broadphaseCollision/btSimplebroadphase.cpp\
  • src/BulletCollision/Collisiondispatch/btActivatingCollisionAlgorithm.cpp\
  • src/BulletCollision/Collisiondispatch/btBoxBoxCollisionAlgorithm.cpp\
  • src/BulletCollision/Collisiondispatch/btBox2dBox2dCollisionAlgorithm.cpp\
  • src/BulletCollision/Collisiondispatch/btBoxBoxDetector.cpp\
  • src/BulletCollision/Collisiondispatch/btCollisiondispatcher.cpp\
  • src/BulletCollision/Collisiondispatch/btCollisionObject.cpp\
  • src/BulletCollision/Collisiondispatch/btCollisionWorld.cpp\
  • src/BulletCollision/Collisiondispatch/btCollisionWorldImporter.cpp\
  • src/BulletCollision/Collisiondispatch/btCompoundCollisionAlgorithm.cpp\
  • src/BulletCollision/Collisiondispatch/btCompoundCompoundCollisionAlgorithm.cpp\
  • src/BulletCollision/Collisiondispatch/btConvexConcaveCollisionAlgorithm.cpp\
  • src/BulletCollision/Collisiondispatch/btConvexConvexAlgorithm.cpp\
  • src/BulletCollision/Collisiondispatch/btConvexPlaneCollisionAlgorithm.cpp\
  • src/BulletCollision/Collisiondispatch/btConvex2dConvex2dAlgorithm.cpp\
  • src/BulletCollision/Collisiondispatch/btDefaultCollisionConfiguration.cpp\
  • src/BulletCollision/Collisiondispatch/btEmptyCollisionAlgorithm.cpp\
  • src/BulletCollision/Collisiondispatch/btGhostObject.cpp\
  • src/BulletCollision/Collisiondispatch/btHashedSimplePairCache.cpp\
  • src/BulletCollision/Collisiondispatch/btInternalEdgeUtility.cpp\
  • src/BulletCollision/Collisiondispatch/btManifoldResult.cpp\
  • src/BulletCollision/Collisiondispatch/btSimulationIslandManager.cpp\
  • src/BulletCollision/Collisiondispatch/btSphereBoxCollisionAlgorithm.cpp\
  • src/BulletCollision/Collisiondispatch/btSphereSphereCollisionAlgorithm.cpp\
  • src/BulletCollision/Collisiondispatch/btSphereTriangleCollisionAlgorithm.cpp\
  • src/BulletCollision/Collisiondispatch/btUnionFind.cpp\
  • src/BulletCollision/Collisiondispatch/SphereTriangleDetector.cpp\
  • src/BulletCollision/CollisionShapes/btBoxShape.cpp\
  • src/BulletCollision/CollisionShapes/btBox2dShape.cpp\
  • src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp\
  • src/BulletCollision/CollisionShapes/btCapsuleShape.cpp\
  • src/BulletCollision/CollisionShapes/btCollisionShape.cpp\
  • src/BulletCollision/CollisionShapes/btCompoundShape.cpp\
  • src/BulletCollision/CollisionShapes/btConcaveShape.cpp\
  • src/BulletCollision/CollisionShapes/btConeshape.cpp\
  • src/BulletCollision/CollisionShapes/btConvexHullShape.cpp\
  • src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp\
  • src/BulletCollision/CollisionShapes/btConvexPointCloudShape.cpp\
  • src/BulletCollision/CollisionShapes/btConvexpolyhedron.cpp\
  • src/BulletCollision/CollisionShapes/btConvexShape.cpp\
  • src/BulletCollision/CollisionShapes/btConvex2dShape.cpp\
  • src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.cpp\
  • src/BulletCollision/CollisionShapes/btCylinderShape.cpp\
  • src/BulletCollision/CollisionShapes/btEmptyShape.cpp\
  • src/BulletCollision/CollisionShapes/btHeightfieldTerrainShape.cpp\
  • src/BulletCollision/CollisionShapes/btMinkowskiSumShape.cpp\
  • src/BulletCollision/CollisionShapes/btMultimaterialTriangleMeshShape.cpp\
  • src/BulletCollision/CollisionShapes/btMultiSphereShape.cpp\
  • src/BulletCollision/CollisionShapes/btOptimizedBvh.cpp\
  • src/BulletCollision/CollisionShapes/btpolyhedralConvexShape.cpp\
  • src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.cpp\
  • src/BulletCollision/CollisionShapes/btShapeHull.cpp\
  • src/BulletCollision/CollisionShapes/btSphereShape.cpp\
  • src/BulletCollision/CollisionShapes/btStaticPlaneshape.cpp\
  • src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp\
  • src/BulletCollision/CollisionShapes/btTetrahedronShape.cpp\
  • src/BulletCollision/CollisionShapes/btTriangleBuffer.cpp\
  • src/BulletCollision/CollisionShapes/btTriangleCallback.cpp\
  • src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.cpp\
  • src/BulletCollision/CollisionShapes/btTriangleIndexVertexMaterialArray.cpp\
  • src/BulletCollision/CollisionShapes/btTriangleMesh.cpp\
  • src/BulletCollision/CollisionShapes/btTriangleMeshShape.cpp\
  • src/BulletCollision/CollisionShapes/btUniformScalingShape.cpp\
  • src/BulletCollision/Gimpact/btContactProcessing.cpp\
  • src/BulletCollision/Gimpact/btGenericPoolAllocator.cpp\
  • src/BulletCollision/Gimpact/btGImpactBvh.cpp\
  • src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp\
  • src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp\
  • src/BulletCollision/Gimpact/btGImpactShape.cpp\
  • src/BulletCollision/Gimpact/btTriangleShapeEx.cpp\
  • src/BulletCollision/Gimpact/gim_Box_set.cpp\
  • src/BulletCollision/Gimpact/gim_contact.cpp\
  • src/BulletCollision/Gimpact/gim_memory.cpp\
  • src/BulletCollision/Gimpact/gim_tri_collision.cpp\
  • src/BulletCollision/NarrowPhaseCollision/btContinuousConvexCollision.cpp\
  • src/BulletCollision/NarrowPhaseCollision/btConvexCast.cpp\
  • src/BulletCollision/NarrowPhaseCollision/btGjkConvexCast.cpp\
  • src/BulletCollision/NarrowPhaseCollision/btGjkEpa2.cpp\
  • src/BulletCollision/NarrowPhaseCollision/btGjkEpaPenetrationDepthSolver.cpp\
  • src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.cpp\
  • src/BulletCollision/NarrowPhaseCollision/btMinkowskiPenetrationDepthSolver.cpp\
  • src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.cpp\
  • src/BulletCollision/NarrowPhaseCollision/btRaycastCallback.cpp\
  • src/BulletCollision/NarrowPhaseCollision/btSubSimplexConvexCast.cpp\
  • src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp\
  • src/BulletCollision/NarrowPhaseCollision/btpolyhedralContactClipping.cpp\
  • src/LinearMath/btAlignedAllocator.cpp\
  • src/LinearMath/btConvexHull.cpp\
  • src/LinearMath/btConvexHullComputer.cpp\
  • src/LinearMath/btGeometryUtil.cpp\
  • src/LinearMath/btPolarDecomposition.cpp\
  • src/LinearMath/btQuickprof.cpp\
  • src/LinearMath/btSerializer.cpp\
  • src/LinearMath/btVector3.cpp

  • 最后还要加上一句,表示生成静态库如果将STATIC该文SHARED则生成动态库

    include$(BUILD_STATIC_LIBRARY)

    然后进入命令行

    进入jni所在目录

    ndk-build

    等待编译完成


    将三个目录下的libbullet.a分别复制到cocos2dx的安装目录下的

    安装目录\Cocos\frameworks\cocos2d-x\prebuilt\android\相应文件下

    进入Cocos\frameworks\cocos2d-x\external

    新建文件夹Bullet,在Bullet下新建prebuild-mk

    Box2D\prebuild-mk下的Android.mk复制到Bullet/prebuild-mk

    修改如下3

    LOCAL_MODULE:=bullet_static

    LOCAL_MODULE_FILENAME:=libbullet

    LOCAL_SRC_FILES:=../../../prebuilt/android/$(TARGET_ARCH_ABI)/libbullet.a


    复制头文件

    bullet3src的所有文件复制到新建的Bullet文件下


    删除不是.h的所有文件

    下一步任务繁重,

    将所有用到BulletCollisionBulletDynamicsBulletSoftBodyLinearMath目录下的include都加上Bullet/,可以使用Notepad++Bullet目录搜索Bullet,并替换为Bullet/BulletLinearMath并替换为Bullet/LinearMath

    进入Cocos\frameworks\cocos2d-x\cocos\prebuilt-mk

    Android.mk

    LOCAL_WHOLE_STATIC_LIBRARIES+=Box2d_static下面添加

    LOCAL_WHOLE_STATIC_LIBRARIES+=bullet_static

    $(callimport-module,Box2D/prebuilt-mk)下面添加

    $(callimport-module,Bullet/prebuilt-mk)

    至此已经完成编译静态库

    下载地址

    cocos2d android分析之-libcocos2dlua.so库

    cocos2d android分析之-libcocos2dlua.so库

    首先把so动态库文件编译出来(通过NDK),然后再 拷贝到android的工程里 libs/armeabi/下,如果libs/armeabi不存在,那就自己创建,最后用eclipse编译项目,这样将自动把so文件打包到apk里;eclipse在打包的时候会根据名的命名规则(lib****.so)去so,开头和结尾必须分别为“lib”和“.so”,否则是不会到apk中的。

    生成so文件的规则参考Android.mk文件:


    LOCAL_PATH := $(call my-dir)
    
    include $(CLEAR_VARS)  清除变量
    
    LOCAL_MODULE := cocos2dlua_shared  定义模块名
    
    LOCAL_MODULE_FILENAME := libcocos2dlua  输出的文件名字,所以会生成libcocos2dlua.so文件
    
    LOCAL_SRC_FILES := \
    ../../Classes/AppDelegate.cpp \   需要编译的源文件
    
    hellolua/main.cpp
    
    LOCAL_C_INCLUDES := \
    $(LOCAL_PATH)/../../Classes/protobuf-lite \
    $(LOCAL_PATH)/../../Classes/runtime \
    $(LOCAL_PATH)/../../Classes \
    $(LOCAL_PATH)/../../../cocos2d-x/external \
    $(LOCAL_PATH)/../../../cocos2d-x/tools/simulator/libsimulator/lib  
    
    LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes   <span>c文件的搜索路径</span>
    
    
    # _COCOS_HEADER_ANDROID_BEGIN
    # _COCOS_HEADER_ANDROID_END
    
    LOCAL_STATIC_LIBRARIES := cocos2d_lua_static
    LOCAL_STATIC_LIBRARIES += cocos2d_simulator_static  依赖这两个静态库
    
    # _COCOS_LIB_ANDROID_BEGIN
    # _COCOS_LIB_ANDROID_END
    
    include $(BUILD_SHARED_LIBRARY)  生成 动态链接库 so 文件
    
    $(call import-module,scripting/lua-bindings/proj.android)  指定静态库的搜索路径
    $(call import-module,tools/simulator/libsimulator/proj.android)
    
    # _COCOS_LIB_IMPORT_ANDROID_BEGIN
    # _COCOS_LIB_IMPORT_ANDROID_END

    是否所有的c文件都编译进来了呢?答案是肯定的。其他c文件编译进了其他静态链接库中,层层依赖,但最终都到了.so这个文件中了。

    在cocos2d android代码中对这个so进行了加载以便可以调用C++。

    Cocos2dxActivity:

    protected void onLoadNativeLibraries() {
            try {
                ApplicationInfo ai = getPackageManager().getApplicationInfo(getPackageName(),PackageManager.GET_Meta_DATA);
                Bundle bundle = ai.MetaData;
                String libName = bundle.getString("android.app.lib_name");
                System.loadLibrary(libName);
            } catch (Exception e) {
                e.printstacktrace();
            }
        }
    经过一段时间的追寻,静态库依赖关系是这样的:

    cocos2dlua_shared-[cocos2d_lua_static,cocos2d_simulator_static]

    cocos2d_lua_static-[cocos2d_lua_android_static,cocos2dx_static,pbc,dragonbones_static],pbc,dragonbones_static是自己添加进来的。

    cocos2dx_static-[cocosbuilder_static,cocos3d_static,spine_static...lib_socket_static]

    cocos2dx_internal_static这个包含了很多基本的类,但是它嵌入的还是蛮深的。

    cocos2dx_internal_static--->cocos_extension_static--->cocos_ui_static--->cocostudio_static。

    其实没必要这么较真的,反正都是各种依赖,但是找到了总算验证了我们的答案,心里踏实多了。

    如何加入已经编译好的静态库呢,这些库就不需要我们去编译了。

    分析cocos2d中集成的curl库吧。

    文件结构为:

    curl

    --include 包含了所有的头文件

    --prebuilt 包含了所有平台的静态库

    --android 又是各种cpu类型

    ---armeabi

    ---armeabi-v7a

    x86

    ---Android.mk

    LOCAL_PATH := $(call my-dir)
    
    include $(CLEAR_VARS)
    LOCAL_MODULE := cocos_curl_static  库名
    LOCAL_MODULE_FILENAME := curl
    LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libcurl.a
    LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/../../include/android
    LOCAL_STATIC_LIBRARIES += cocos_ssl_static 依赖的静态库
    LOCAL_STATIC_LIBRARIES += cocos_crypto_static
    include $(PREBUILT_STATIC_LIBRARY)
    
    include $(CLEAR_VARS)
    
    LOCAL_MODULE := cocos_crypto_static
    LOCAL_MODULE_FILENAME := crypto
    LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libcrypto.a
    include $(PREBUILT_STATIC_LIBRARY)
    
    LOCAL_MODULE := cocos_ssl_static
    LOCAL_MODULE_FILENAME := ssl
    LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libssl.a
    include $(PREBUILT_STATIC_LIBRARY)  
    


    PREBUILT_SHARED_LIBRARY

    该变量指向一个已编译好的共享库。与BUILD_SHARED_LIBRARY和BUILD_STATIC_LIBRARY不同,此时相应的LOCAL_SRC_FILES不再指定源文件,而是指向这个预编译共享库文件(例如 foo/libfoo.so)。可以在其他模块中,通过使用LOCAL_PREBUILTS变量来引用这个预编译模块。

    PREBUILT_STATIC_LIBRARY

    与PREBUILT_SHARED_LIBRARY相同,只不过这里是静态库。

    参考:

    1:http://www.jb51.cc/article/p-vddjqwuf-gd.html

    2:http://www.jb51.cc/article/p-nslafhez-gv.html

    3:http://www.cnblogs.com/rainduck/p/3600472.html 4:

    Cocos2d-android (01) 创建一个简单的 cocos2d 应用程序

    Cocos2d-android (01) 创建一个简单的 cocos2d 应用程序

    下载 Cocos2d-android 的源代码:cocos2d-android-1

    git@github.com:ZhouWeikuan/cocos2d.git

     将项目导入到 eclipse 中。运行实例;

     

    1. 首先创建一个 android 项目,然后将 lib 导入到项目中

    2. 对 MainActivity.java 编写

    1)首先创建一个 view 对象

    private CCGLSurfaceView view = null;

    2)取得 CCDirector 对象

    CCDirector director = CCDirector.sharedDirector();

    3)设置应用程序的属性

     1 //设置当前游戏中所使用的view对象
     2 director.attachInView(view);
     3 //设置是否显示fps
     4 director.setDisplayFPS(true);
     5 //设置游戏渲染一帧数据所需要的时间(fps=30)
     6 director.setAnimationInterval(1/30.0f);
     7         
     8 //生成一个游戏场景对象
     9 CCScene scene = CCScene.node();
    10         
    11 //生成一个布景层对象
    12 GameLayer gameLayer = new GameLayer();
    13 //将布景层对象添加至游戏场景中
    14 scene.addChild(gameLayer);
    15         
    16 //运行游戏场景
    17 director.runWithScene(scene);
    18 
    19 //setContentView(R.layout.activity_main);
    20 setContentView(view);

    完整代码:

     1 import android.os.Bundle;
     2 import android.app.Activity;
     3 import android.view.Menu;
     4 
     5 import org.cocos2d.layers.CCScene;
     6 import org.cocos2d.nodes.CCDirector;
     7 import org.cocos2d.opengl.CCGLSurfaceView;
     8 
     9 public class MainActivity extends Activity {
    10 
    11     private CCGLSurfaceView view = null;
    12 
    13     @Override
    14     protected void onCreate(Bundle savedInstanceState) {
    15         super.onCreate(savedInstanceState);
    16         
    17         view = new CCGLSurfaceView(this);
    18         
    19         //取得 CCDirector 对象
    20         CCDirector director = CCDirector.sharedDirector();
    21         
    22         //设置应用程序的属性
    23         //设置当前游戏中所使用的view对象
    24         director.attachInView(view);
    25         //设置是否显示fps
    26         director.setDisplayFPS(true);
    27         //设置游戏渲染一帧数据所需要的时间(fps=30)
    28         director.setAnimationInterval(1/30.0f);
    29         
    30         //生成一个游戏场景对象
    31         CCScene scene = CCScene.node();
    32         
    33         //生成一个布景层对象
    34         GameLayer gameLayer = new GameLayer();
    35         //将布景层对象添加至游戏场景中
    36         scene.addChild(gameLayer);
    37         
    38         //运行游戏场景
    39         director.runWithScene(scene);
    40 
    41         //setContentView(R.layout.activity_main);
    42         setContentView(view);
    43     }
    44 
    45     @Override
    46     public boolean onCreateOptionsMenu(Menu menu) {
    47         // Inflate the menu; this adds items to the action bar if it is present.
    48         getMenuInflater().inflate(R.menu.main, menu);
    49         return true;
    50     }
    51 
    52 }
    View Code
    1 import org.cocos2d.layers.CCLayer;
    2 
    3 
    4 public class GameLayer extends CCLayer {
    5     public GameLayer(){
    6         
    7     }
    8 }
    View Code

    直接运行就行。

     

    关于cocos2d-x编译问题集合 error C2440: “类型转换”: 无法从“void (__thiscall xx::* )(void)”转换为“cocos2d::SEL_CallFuncN”的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于android studio 编译 cocos2dx C++ 遇到 Error: Can''t find bundle for base name messages.AndroidJpsBundle, locale zh_CN、Bullet(Cocos2dx)之交叉编译Android,集成到cocos2dx3.x、cocos2d android分析之-libcocos2dlua.so库、Cocos2d-android (01) 创建一个简单的 cocos2d 应用程序的相关信息,请在本站寻找。

    本文标签: