【问题标题】:Andengine adding bottom banner admobAndengine 添加底部横幅 admob
【发布时间】:2015-03-17 22:50:08
【问题描述】:

我尝试在我的游戏中添加 admob。我用过andengine。它使用 4.4.2 模拟器和我的 Sony Xperia Z2 打开。但是当我尝试用 4.1.2 模拟器打开时它停止工作。我用我的朋友电话 4.1 试过了。结果一样

@Override
    protected void onSetContentView() {
        final FrameLayout frameLayout = new FrameLayout(this);
            final FrameLayout.LayoutParams frameLayoutLayoutParams = new FrameLayout.LayoutParams(
                FrameLayout.LayoutParams.MATCH_PARENT,
                FrameLayout.LayoutParams.MATCH_PARENT);
            AdView adView = new AdView(this);
        adView.setAdUnitId("ca-app-pub-9924350594770048/3316988217");
        adView.setAdSize(AdSize.BANNER);
        adView.refreshDrawableState();
        adView.setVisibility(AdView.VISIBLE);

        final FrameLayout.LayoutParams adViewLayoutParams = new FrameLayout.LayoutParams(
                FrameLayout.LayoutParams.WRAP_CONTENT,
                FrameLayout.LayoutParams.WRAP_CONTENT,
                Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM);

        AdRequest adreq = new AdRequest.Builder().build();
        adView.loadAd(adreq);

        this.mRenderSurfaceView = new RenderSurfaceView(this);
        mRenderSurfaceView.setRenderer(mEngine);

        final android.widget.FrameLayout.LayoutParams surfaceViewLayoutParams = new FrameLayout.LayoutParams(
                super.createSurfaceViewLayoutParams());

        frameLayout.addView(this.mRenderSurfaceView, surfaceViewLayoutParams);
        frameLayout.addView(adView, adViewLayoutParams);

        this.setContentView(frameLayout, frameLayoutLayoutParams);
    } 

这是我的代码。

和日志猫

    03-17 22:45:17.668: W/dalvikvm(658): threadid=1: thread exiting with uncaught exception (group=0x40a13300)
03-17 22:45:17.687: E/AndroidRuntime(658): FATAL EXCEPTION: main
03-17 22:45:17.687: E/AndroidRuntime(658): java.lang.NoSuchMethodError: android.widget.FrameLayout$LayoutParams.<init>
03-17 22:45:17.687: E/AndroidRuntime(658):  at com.oxygenuygulamalari.maymuntesti.MainActivity.onSetContentView(MainActivity.java:89)
03-17 22:45:17.687: E/AndroidRuntime(658):  at org.anddev.andengine.ui.activity.BaseGameActivity.onCreate(BaseGameActivity.java:64)
03-17 22:45:17.687: E/AndroidRuntime(658):  at android.app.Activity.performCreate(Activity.java:5008)
03-17 22:45:17.687: E/AndroidRuntime(658):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
03-17 22:45:17.687: E/AndroidRuntime(658):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
03-17 22:45:17.687: E/AndroidRuntime(658):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
03-17 22:45:17.687: E/AndroidRuntime(658):  at android.app.ActivityThread.access$600(ActivityThread.java:130)
03-17 22:45:17.687: E/AndroidRuntime(658):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
03-17 22:45:17.687: E/AndroidRuntime(658):  at android.os.Handler.dispatchMessage(Handler.java:99)
03-17 22:45:17.687: E/AndroidRuntime(658):  at android.os.Looper.loop(Looper.java:137)
03-17 22:45:17.687: E/AndroidRuntime(658):  at android.app.ActivityThread.main(ActivityThread.java:4745)
03-17 22:45:17.687: E/AndroidRuntime(658):  at java.lang.reflect.Method.invokeNative(Native Method)
03-17 22:45:17.687: E/AndroidRuntime(658):  at java.lang.reflect.Method.invoke(Method.java:511)
03-17 22:45:17.687: E/AndroidRuntime(658):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
03-17 22:45:17.687: E/AndroidRuntime(658):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
03-17 22:45:17.687: E/AndroidRuntime(658):  at dalvik.system.NativeStart.main(Native Method)
03-17 22:45:20.547: I/dalvikvm(658): Total arena pages for JIT: 11
03-17 22:45:20.547: I/dalvikvm(658): Total arena pages for JIT: 12
03-17 22:45:20.557: I/dalvikvm(658): Total arena pages for JIT: 13
03-17 22:45:20.568: I/dalvikvm(658): Total arena pages for JIT: 14
03-17 22:45:20.568: I/dalvikvm(658): Total arena pages for JIT: 15
03-17 22:45:20.568: I/dalvikvm(658): Total arena pages for JIT: 16
03-17 22:45:20.577: I/dalvikvm(658): Total arena pages for JIT: 17
03-17 22:45:20.677: I/dalvikvm(658): Total arena pages for JIT: 18
03-17 22:45:20.767: D/dalvikvm(658): DexOpt: --- BEGIN 'ads-2102557420.jar' (bootstrap=0) ---
03-17 22:45:21.057: D/dalvikvm(658): DexOpt: --- END 'ads-2102557420.jar' (success) ---
03-17 22:45:21.057: D/dalvikvm(658): DEX prep '/data/data/com.oxygenuygulamalari.maymuntesti/cache/ads-2102557420.jar': unzip in 3ms, rewrite 288ms
03-17 22:45:41.497: W/Ads(658): There was a problem getting an ad response. ErrorCode: 0

【问题讨论】:

    标签: admob runtime-error andengine


    【解决方案1】:

    将 Admob 添加到 AndEngine(将广告的位置设置到底部):

           @Override
    protected void onSetContentView() {
       final RelativeLayout relativeLayout = new RelativeLayout(this);
    
            final FrameLayout.LayoutParams relativeLayoutLayoutParams = new FrameLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT);
    
            this.mRenderSurfaceView = new RenderSurfaceView(this);
            this.mRenderSurfaceView.setRenderer(this.mEngine, this);
    
    
            final android.widget.RelativeLayout.LayoutParams surfaceViewLayoutParams = new RelativeLayout.LayoutParams(BaseGameActivity.createSurfaceViewLayoutParams());
            surfaceViewLayoutParams.addRule(RelativeLayout.CENTER_HORIZONTAL);
    
            relativeLayout.addView(this.mRenderSurfaceView, surfaceViewLayoutParams);
    
           FrameLayout frameLayout = new FrameLayout(this);
    
           FrameLayout.LayoutParams fparams=new FrameLayout.LayoutParams( FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT);
    
            adView = new AdView(this);
    
    
            final FrameLayout.LayoutParams adViewLayoutParams = new FrameLayout.LayoutParams(
                    FrameLayout.LayoutParams.WRAP_CONTENT,
                    FrameLayout.LayoutParams.WRAP_CONTENT,
                    Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM);
    
            adView.setAdUnitId("xxxxx");
            adView.setAdSize(AdSize.SMART_BANNER);
    
            adView.refreshDrawableState();
    
    
            frameLayout.addView(adView,adViewLayoutParams);
    
              relativeLayout.addView(frameLayout,fparams);
    
            this.setContentView(relativeLayout, relativeLayoutLayoutParams);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多