Java 需要活动视图和Admob的帮助吗

Java 需要活动视图和Admob的帮助吗,java,android,eclipse,admob,Java,Android,Eclipse,Admob,有人能给我一个想法吗 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mDoSave = true; // Force landscape and no title for extra room setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); requestWind

有人能给我一个想法吗

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

// Force landscape and no title for extra room
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
requestWindowFeature(Window.FEATURE_NO_TITLE);

adView = new AdView(this);
adView.setAdSize(AdSize.BANNER);
adView.setAdUnitId("a15341caf10045c");
AdRequest adRequest = new AdRequest.Builder().build();   
adView.loadAd(adRequest);

// If the user has never accepted the EULA show it again.
mSettings = getSharedPreferences("SolitairePreferences", 0);

//setContentView(R.layout.main);
mMainView = findViewById(R.id.main_view);

mSolitaireView = (SolitaireView) findViewById(R.id.solitaire);
mSolitaireView.SetTextView((TextView) findViewById(R.id.text));

RelativeLayout layout = new RelativeLayout(this);
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_LEFT);

RelativeLayout.LayoutParams adParams1 = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
adParams1.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
adParams1.addRule(RelativeLayout.CENTER_HORIZONTAL); 

layout.addView(mMainView, adParams);
layout.addView(adView, adParams1);

setContentView(layout);
//StartSolitaire(savedInstanceState);
}
这是一个oncreate方法,包含一些游戏逻辑和AdMob横幅的代码。 这里有点不对劲,所以我不知道是什么。 它应该以横向模式显示游戏,横幅在底部

以下是我得到的两个错误:

E/GooglePlayServicesUtil(15959): The Google Play services resources were not found. Check your project configuration to ensure that the resources are included.



 FATAL EXCEPTION: main java.lang.RuntimeException: Unable to start activity ComponentInfo{com.jalle.solitaire/com.jalle.solitaire.Solitaire}: java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2073)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2098)
at android.app.ActivityThread.access$600(ActivityThread.java:138)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1204)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4905)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
at android.view.ViewGroup.addViewInner(ViewGroup.java:3378)
at android.view.ViewGroup.addView(ViewGroup.java:3249)
at android.view.ViewGroup.addView(ViewGroup.java:3225)
at com.jalle.solitaire.Solitaire.onCreate(Solitaire.java:93)
at android.app.Activity.performCreate(Activity.java:5244)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1082)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2037)
... 11 more

所以我的问题是:在游戏屏幕上放置admob的最佳方式是什么?它是使用相对布局还是smth其他方式?

忽略第一个错误,我也经常遇到这个错误,但play services可以正常工作。对于第二个视图,将两个视图一个接一个地放入同一布局中。您可以尝试使用viewGroup或执行类似操作

LinearLayout childLayout =
new LinearLayout(this);
childLayout.setOrientation
(LinearLayout.HORIZONTAL);
childLayout.addView
(secondView);
parentLayout.add(childLayout);
问题在于:

layout.removeAllViews();
layout.addView(mMainView, adParams); 
layout.addView(adView, adParams1);
setContentView(layout); 
可能是因为我已经调用过该方法一次: setContentView(R.layout.main)


是否有在具有FrameLayout的游戏上设置adview的示例

您是否忘记添加参数?layout.removeView();无法工作,很明显,因为它缺少视图参数。然后我尝试了layout.removeAllViews();但类似的错误也发生了。这次月食想从我这里得到什么?!removeAllViews()应该已经完成了这项工作。你是否遇到了相同或不同的错误?尝试将ad和mMainView添加到不同的版面中,而不是主版面中。这就是问题所在:java.lang.IllegalStateException:指定的子级已具有父级。必须首先对子级的父级调用removeView()。