cocos2d-x admob jni
2014-03-21 00:03
204 查看
c++调用java层,参照:
package org.cocos2dx.hellocpp; import org.cocos2dx.lib.Cocos2dxActivity; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.Gravity; import android.view.View; import android.view.ViewGroup.LayoutParams; import com.google.ads.AdRequest; import com.google.ads.AdSize; import com.google.ads.AdView; public class HelloCpp extends Cocos2dxActivity{ static AdView adView; static Activity me; //put here your id final String ADMOB_ID="a150f54aa7dab27"; protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); me=this; try { LayoutParams adParams = new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT); adView = new AdView(this, AdSize.BANNER, ADMOB_ID); AdRequest request = new AdRequest(); adView.loadAd(request); adView.setGravity(Gravity.TOP|Gravity.CENTER); // Adding full screen container addContentView(adView, adParams); } catch (Exception e) { Log.d("", "error: " + e); } } static void showAdmobJNI(){ me.runOnUiThread(new Runnable() { @Override public void run() { adView.setVisibility(View.VISIBLE); } }); } static void hideAdmobJNI(){ me.runOnUiThread(new Runnable() { @Override public void run() { adView.setVisibility(View.INVISIBLE); } }); } static void setAdmobVisibleJNI(final int number){ me.runOnUiThread(new Runnable() { @Override public void run() { if(number==0){ adView.setVisibility(View.INVISIBLE); } else { adView.setVisibility(View.VISIBLE); } } }); } static void setVisibleAdmobJNI(final boolean visible){ me.runOnUiThread(new Runnable() { @Override public void run() { if(visible){ adView.setVisibility(View.VISIBLE); } else { adView.setVisibility(View.INVISIBLE); } } }); } static void setAdmobVisibilityJNI(final String name){ me.runOnUiThread(new Runnable() { @Override public void run() { if(name.equals("show")||name=="show"){ adView.setVisibility(View.VISIBLE); } else { adView.setVisibility(View.INVISIBLE); } } }); } static { System.loadLibrary("hellocpp"); } }
#ifndef __ANDROID_URL_JNI_H__ #define __ANDROID_URL_JNI_H__ extern "C" { extern void showAdmobJNI(); extern void hideAdmobJNI(); extern void setAdmobVisibleJNI(int number); extern void setVisibleAdmobJNI(bool visible); extern void setAdmobVisibilityJNI(const char* name); } #endifAndroidJni.cpp
#include "AndroidJni.h" #include "platform/android/jni/JniHelper.h" //vem do projeto principal - pasta cocos2dx #include <jni.h> using namespace cocos2d; extern "C" { void showAdmobJNI(){ JniMethodInfo t; if (JniHelper::getStaticMethodInfo(t, "org.cocos2dx.hellocpp/HelloCpp" ,"showAdmobJNI" ,"()V")) { t.env->CallStaticVoidMethod(t.classID,t.methodID); } } void hideAdmobJNI(){ JniMethodInfo t; if (JniHelper::getStaticMethodInfo(t, "org.cocos2dx.hellocpp/HelloCpp" ,"hideAdmobJNI" ,"()V")) { t.env->CallStaticVoidMethod(t.classID,t.methodID); } } void setAdmobVisibleJNI(int number){ JniMethodInfo t; if (JniHelper::getStaticMethodInfo(t, "org.cocos2dx.hellocpp/HelloCpp" ,"setAdmobVisibleJNI" ,"(I)V")) { t.env->CallStaticVoidMethod(t.classID,t.methodID,number); } } void setVisibleAdmobJNI(bool visible){ JniMethodInfo t; if (JniHelper::getStaticMethodInfo(t, "org.cocos2dx.hellocpp/HelloCpp" ,"setVisibleAdmobJNI" ,"(Z)V")) { t.env->CallStaticVoidMethod(t.classID,t.methodID,visible); } } void setAdmobVisibilityJNI(const char* name){ JniMethodInfo t; if (JniHelper::getStaticMethodInfo(t, "org.cocos2dx.hellocpp/HelloCpp" ,"setAdmobVisibilityJNI" ,"(Ljava/lang/String;)V")) { jstring StringArg1 = t.env->NewStringUTF(name); t.env->CallStaticVoidMethod(t.classID,t.methodID, StringArg1); } } }
相关文章推荐
- cocos2d-x 通过JNI实现c/c++和Android的java层函数互调
- cocos2d-x中通过jni调用android方法
- cocos2D通过jni 与andriod交互
- Cocos2d-x3.3RC0通过JNI调用Android的Java层URI代码发送短信
- IOS 如何在cocos2d Game中添加 AdMob 广告条
- cocos2d-x 使用JniHelper 调用 java代码 获取安卓生成的唯一标示UUID
- cocos2d-x 通过JNI实现c/c++和Android的java层函数互调
- C++ 调用 Java Cocos2d-x利用jni调用java层代码
- Cocos2d-x3.3RC0通过JNI调用Android的Java层URI代码发送短信
- Cocos2d-x利用jni调用java层代码
- Cocos2d-x利用jni调用java层代码
- cocos2d-x 通过JNI实现c/c++和Android的java层函数互调
- cocos2d-x中JniHelper类详细使用
- Cocos2d-x学习之通过Jni调用Android的Java层代码
- Jni调用,cocos2d.x调用java代码
- cocos2d-x中有一个JniHelper类详细使用
- cocos2d-x中有一个JniHelper类详细使用
- Cocos2d-x3.3RC0通过JNI调用Android的Java层代码,实现分享功能
- Cocos2d-x利用jni调用java层代码
- cocos2d-x 使用JNI从Java调C++