【问题标题】:Android : requestFeature() must be called before adding content, where is the error?Android : requestFeature() 必须在添加内容之前调用,错误在哪里?
【发布时间】:2014-03-19 17:57:43
【问题描述】:

我想在我的 Android 游戏中使用 LibGDX nd google play 服务添加带有 AdMob 的广告横幅...

您能帮我解决这个错误吗?无法弄清楚为什么它不起作用...:/

我知道这个错误意味着什么,但我真的不知道它在我的代码中链接了什么...... (我是 java 和 android dev 的新手,还有法语,所以这对我来说很困难......>.

03-19 17:34:13.523: E/AndroidRuntime(5806): FATAL EXCEPTION: main
03-19 17:34:13.523: E/AndroidRuntime(5806): Process: com.louu.aimproject, PID: 5806
03-19 17:34:13.523: E/AndroidRuntime(5806): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.louu.aimproject/com.louu.aimproject.MainActivity}: android.util.AndroidRuntimeException: requestFeature() must be called before adding content
03-19 17:34:13.523: E/AndroidRuntime(5806):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2227)
03-19 17:34:13.523: E/AndroidRuntime(5806):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2277)
03-19 17:34:13.523: E/AndroidRuntime(5806):     at android.app.ActivityThread.access$800(ActivityThread.java:145)
03-19 17:34:13.523: E/AndroidRuntime(5806):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1206)
03-19 17:34:13.523: E/AndroidRuntime(5806):     at android.os.Handler.dispatchMessage(Handler.java:102)
03-19 17:34:13.523: E/AndroidRuntime(5806):     at android.os.Looper.loop(Looper.java:136)
03-19 17:34:13.523: E/AndroidRuntime(5806):     at android.app.ActivityThread.main(ActivityThread.java:5088)
03-19 17:34:13.523: E/AndroidRuntime(5806):     at java.lang.reflect.Method.invokeNative(Native Method)
03-19 17:34:13.523: E/AndroidRuntime(5806):     at java.lang.reflect.Method.invoke(Method.java:515)
03-19 17:34:13.523: E/AndroidRuntime(5806):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
03-19 17:34:13.523: E/AndroidRuntime(5806):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:607)
03-19 17:34:13.523: E/AndroidRuntime(5806):     at dalvik.system.NativeStart.main(Native Method)
03-19 17:34:13.523: E/AndroidRuntime(5806): Caused by: android.util.AndroidRuntimeException: requestFeature() must be called before adding content
03-19 17:34:13.523: E/AndroidRuntime(5806):     at com.android.internal.policy.impl.PhoneWindow.requestFeature(PhoneWindow.java:303)
03-19 17:34:13.523: E/AndroidRuntime(5806):     at android.app.Activity.requestWindowFeature(Activity.java:3332)
03-19 17:34:13.523: E/AndroidRuntime(5806):     at com.louu.aimproject.MainActivity.onCreate(MainActivity.java:62)
03-19 17:34:13.523: E/AndroidRuntime(5806):     at android.app.Activity.performCreate(Activity.java:5434)
03-19 17:34:13.523: E/AndroidRuntime(5806):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
03-19 17:34:13.523: E/AndroidRuntime(5806):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2181)
03-19 17:34:13.523: E/AndroidRuntime(5806):     ... 11 more
03-19 17:41:44.643: E/dalvikvm(6652): Could not find class 'com.google.android.gms.ads.AdView', referenced from method com.louu.aimproject.MainActivity.onCreate

代码

@Override
public void onCreate (Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
    gameHelper.setup(this);
    RelativeLayout layout = new RelativeLayout(this);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
                    WindowManager.LayoutParams.FLAG_FULLSCREEN);
    getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
    View gameView = initializeForView(new TutorialLibgdxGameservices(this), false);
    AdView adView = new AdView(this);
    adView.setAdUnitId("ca-app-pub-7435783642832057/7018436522");
    adView.setAdSize(AdSize.SMART_BANNER);
    AdRequest request = new AdRequest.Builder()
    .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
    //.addTestDevice("")  // Mon téléphone est un nexus 5
    .build();
    layout.addView(gameView);
    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);
    setContentView(layout);
}

请帮忙,我不知道我应该改变什么。

【问题讨论】:

  • 这个教程已经过时了,我绝望地到处寻找帮助,或者一个例子来理解......
  • 本教程最后一次更新是在 4 天前...
  • 好吧,所以我肯定很虚弱......你能帮帮我吗?我想我需要一些更人性化的东西来帮助我理解我没有的东西,只有不同的 tuto...

标签: android libgdx admob


【解决方案1】:

您的错误信息是:

Could not find class 'com.google.android.gms.ads.AdView', referenced from method com.louu.aimproject.MainActivity.onCreate

这意味着 com.google.android.gms.ads.AdView 类尚未添加到您的 APK。该类包含在 Google Play 服务库中,因此请确保将其添加到您的项目中。

【讨论】:

  • 今晚我会尝试,但我必须重新编写整个程序... U_u(保存失败)...
猜你喜欢
  • 2011-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多