Admob 与 android 中的 pygame 集成 [英] Admob integration with pygame in android

查看:34
本文介绍了Admob 与 android 中的 pygame 集成的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Hello I am curious to know the solution for integrating Admob for App written in pygame Subset for Android. I have tried below things which did' t work for me :(

Still nothing working for me May be there is no way :(

TRY 1: I followed google https://developers.google.com/mobile-ads-sdk/docs/admob/fundamentals#android This solution has no code change only build.xml modification It didt works for me :(

TRY 2: Tried below solutio also. http://www.michenux.net/android-admob-tutorial-461.html It also did't work for me :(

TRY 3: Tried to hack PythonActivity.java. But getting below related errors. I have GoogleAdMobAdsSdk-6.4.1.jar in pgs4a-0.9.4libs PATH still I get below kind of ERROR.

Below is my code:

  protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    //vrbilgi

        setContentView(R_Layout_main);
    //    setContentView(r.layout.main);

            // Create the adView
    //     adView = new AdView(this, AdSize.BANNER, MY_AD_UNIT_ID);
            adView = new AdView(this, AdSize.BANNER,"a1520527530b444");

            // Lookup your LinearLayout assuming it's been given
            // the attribute android:id="@+id/mainLayout"
          //  LinearLayout layout = (LinearLayout)findViewById(R.id.mainLayout);
            LinearLayout layout = (LinearLayout)findViewById(R_adView);

            // Add the adView to it
            layout.addView(adView);

            // Initiate a generic request to load it with an ad
            adView.loadAd(new AdRequest());



    //vrbilgi

When I launch my app I get below error: Any help please.

I/ActivityManager(   66): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.number.game/org.renpy.android.PythonActivity }
I/ActivityManager(   66): Start proc com.number.game:python for activity com.number.game/org.renpy.android.PythonActivity: pid=1214 uid=10036 gids={1015, 3003}
I/ActivityManager(   66): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.number.game/org.renpy.android.PythonActivity }
E/Ads     ( 1214): The android:configChanges value of the com.google.ads.AdActivity must include screenLayout.
E/Ads     ( 1214): The android:configChanges value of the com.google.ads.AdActivity must include uiMode.
E/Ads     ( 1214): The android:configChanges value of the com.google.ads.AdActivity must include screenSize.
E/Ads     ( 1214): The android:configChanges value of the com.google.ads.AdActivity must include smallestScreenSize.
E/Ads     ( 1214): You must have AdActivity declared in AndroidManifest.xml with configChanges.
E/Ads     ( 1214): You must have AdActivity declared in AndroidManifest.xml with configChanges.
D/AndroidRuntime( 1214): Shutting down VM
W/dalvikvm( 1214): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
D/dalvikvm( 1214): GC_FOR_MALLOC freed 3598 objects / 323688 bytes in 110ms
E/AndroidRuntime( 1214): FATAL EXCEPTION: main
E/AndroidRuntime( 1214): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.number.game/org.renpy.android.PythonActivity}: java.lang.ClassCastException: com.google.ads.AdView
E/AndroidRuntime( 1214):        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
E/AndroidRuntime( 1214):        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
E/AndroidRuntime( 1214):        at android.app.ActivityThread.access$2300(ActivityThread.java:125)
E/AndroidRuntime( 1214):        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
E/AndroidRuntime( 1214):        at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime( 1214):        at android.os.Looper.loop(Looper.java:123)
E/AndroidRuntime( 1214):        at android.app.ActivityThread.main(ActivityThread.java:4627)
E/AndroidRuntime( 1214):        at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 1214):        at java.lang.reflect.Method.invoke(Method.java:521)
E/AndroidRuntime( 1214):        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
E/AndroidRuntime( 1214):        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
E/AndroidRuntime( 1214):        at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime( 1214): Caused by: java.lang.ClassCastException: com.google.ads.AdView
E/AndroidRuntime( 1214):        at org.renpy.android.PythonActivity.onCreate(PythonActivity.java:77)
E/AndroidRuntime( 1214):        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
E/AndroidRuntime( 1214):        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
E/AndroidRuntime( 1214):        ... 11 more
W/ActivityManager(   66):   Force finishing activity com.number.game/org.renpy.android.PythonActivity
W/ActivityManager(   66): Activity pause timeout for HistoryRecord{43fec778 com.number.game/org.renpy.android.PythonActivity}
I/Process ( 1214): Sending signal. PID: 1214 SIG: 9
W/InputManagerService(   66): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@44097098
I/ActivityManager(   66): Process com.number.game:python (pid 1214) has died.
W/ActivityManager(   66): Activity destroy timeout for HistoryRecord{43fec778 com.number.game/org.renpy.android.PythonActivity}

解决方案

This might be what you're looking for. I know that this is super late, but future people might benefit from this.

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration();
    cfg.useGL20 = true;
    cfg.useAccelerometer = false;
    cfg.useCompass = false;

    // Create the layout
    RelativeLayout layout = new RelativeLayout(this);

    // Do the stuff that initialize() would do for you
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
                    WindowManager.LayoutParams.FLAG_FULLSCREEN);
    getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);

    // Create the pygame View
    View gameView = initializeForView(R_layout_main, cfg);

    // Create and setup the AdMob view
    adView = new AdView(this, AdSize.BANNER, "your id here"); // Put in your secret key here
    adView.loadAd(new AdRequest());

    // Add the pygame view
    layout.addView(gameView);

    // Add the AdMob view
    RelativeLayout.LayoutParams adParams = 
            new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, 
                            RelativeLayout.LayoutParams.WRAP_CONTENT);
    adParams.addRule(RelativeLayout.ALIGN_PARENT_TOP);
    adParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);

    layout.addView(adView, adParams);

    // Hook it all up
    setContentView(layout);
}

这篇关于Admob 与 android 中的 pygame 集成的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆