C++使用jniHelper控制android端广告出错

做移植时想添加控制admob广告的一个函数,于是用jni:
win7,,vs2010,cocos2d-1.0.1-x-0.12.0,工程头文件中添加
#include “JniHelper.h” //就是platformandroidjni里面那个

JniHelper.h使用jni.h 所以从JDkinclude拷贝到工程下导入 #include “jni.h”
JniHelper.cpp 要用到log.h,所以从NDKplatformsandroid-14arch-x86usrincludeandroid里面拷贝到工程下导入
添加#include “log.h”
然后因为jni.h还要用jni_md.h,所以从JDKwin32拷贝到工程下导入
结果运行报错:
1> JniHelper.cpp
1>d:cocos2d-1.0.1-xcocos2dxplatformandroidjnijnihelper.cpp(61): error C2664: “JavaVM_::AttachCurrentThread”: 不能将参数 1 从“JNIEnv **”转换为“void **”
1> 与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换
1>d:cocos2d-1.0.1-xcocos2dxplatformandroidjnijnihelper.cpp(164): warning C4190: “jstring2string_”有指定的 C 链接,但返回了与 C 不兼容的 UDT“std::basic_string<_Elem,_Traits,_Ax>”
1> with
1>
1> _Elem=char,
1> _Traits=std::char_traits,
1> Ax=std::allocator
1> ]
1>d:cocos2d-1.0.1-xcocos2dxplatformandroidjnijnihelper.cpp(186): warning C4273: “m_psJavaVM”: dll 链接不一致
1> d:cocos2d-1.0.1-xcocos2dxplatformandroidjnijnihelper.h(51) : 参见“private: static JavaVM
* cocos2d::JniHelper::m_psJavaVM”的前一个定义
1>d:cocos2d-1.0.1-xcocos2dxplatformandroidjnijnihelper.cpp(186): error C2491: “cocos2d::JniHelper::m_psJavaVM”: 不允许 dllimport 静态数据成员 的定义
1>d:cocos2d-1.0.1-xcocos2dxplatformandroidjnijnihelper.cpp(189): warning C4273: “cocos2d::JniHelper::getJavaVM”: dll 链接不一致
1> d:cocos2d-1.0.1-xcocos2dxplatformandroidjnijnihelper.h(43) : 参见“getJavaVM”的前一个定义
1>d:cocos2d-1.0.1-xcocos2dxplatformandroidjnijnihelper.cpp(194): warning C4273: “cocos2d::JniHelper::setJavaVM”: dll 链接不一致
1> d:cocos2d-1.0.1-xcocos2dxplatformandroidjnijnihelper.h(44) : 参见“setJavaVM”的前一个定义
1>d:cocos2d-1.0.1-xcocos2dxplatformandroidjnijnihelper.cpp(199): warning C4273: “cocos2d::JniHelper::getClassID”: dll 链接不一致
1> d:cocos2d-1.0.1-xcocos2dxplatformandroidjnijnihelper.h(45) : 参见“getClassID”的前一个定义
1>d:cocos2d-1.0.1-xcocos2dxplatformandroidjnijnihelper.cpp(204): warning C4273: “cocos2d::JniHelper::getStaticMethodInfo”: dll 链接不一致
1> d:cocos2d-1.0.1-xcocos2dxplatformandroidjnijnihelper.h(46) : 参见“getStaticMethodInfo”的前一个定义
1>d:cocos2d-1.0.1-xcocos2dxplatformandroidjnijnihelper.cpp(209): warning C4273: “cocos2d::JniHelper::getMethodInfo”: dll 链接不一致
1> d:cocos2d-1.0.1-xcocos2dxplatformandroidjnijnihelper.h(47) : 参见“getMethodInfo”的前一个定义
1>d:cocos2d-1.0.1-xcocos2dxplatformandroidjnijnihelper.cpp(214): warning C4273: “cocos2d::JniHelper::jstring2string”: dll 链接不一致
1> d:cocos2d-1.0.1-xcocos2dxplatformandroidjnijnihelper.h(48) : 参见“jstring2string”的前一个定义

很纠结的问题,请各位大大解答。

感谢回复!
我得使用这些结构体和方法啊
JniMethodInfo t;

if (JniHelper::getStaticMethodInfo(t, "com/test/helloworld", "setupAds", "(Z;)V"))
{
	t.env->CallStaticVoidMethod(t.classID, t.methodID, a);
}

第一个错已经解决了,第二个错
1>d:cocos2d-1.0.1-xcocos2dxplatformandroidjnijnihelper.cpp(186): error C2491: “cocos2d::JniHelper::m_psJavaVM”: 不允许 dllimport 静态数据成员 的定义
这个必须编译吧。。。