3

我的 Android 应用程序中的 AdMob 存在问题。我已经完成了这里描述的所有事情,但是当我启动程序时,它没有运行(有很多错误)。我将向您展示一段程序:

public class MenuMainActivity extends Activity{

private AdView adView;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_menu_main);  

    adView = new AdView(this, AdSize.BANNER, "(code-15 signs)");
    RelativeLayout layout = (RelativeLayout)findViewById(R.layout.activity_menu_main);
    layout.addView(adView);
    adView.loadAd(new AdRequest());

还有xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<TextView
    android:id="@+id/titleOfGame"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="3dp"
    android:layout_centerHorizontal="true"
    android:textSize="25sp"
    android:text="@string/title_of_game_text" />

...

当我评论两行时:

//layout.addView(adView);
//adView.loadAd(new AdRequest());

一切都好。问题出在哪里?

4

2 回答 2

0

正如之前的海报所提到的,您需要在布局中创建一个您希望广告出现的特定位置,例如,使用您提供的代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<TextView
    android:id="@+id/titleOfGame"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="3dp"
    android:layout_centerHorizontal="true"
    android:textSize="25sp"
    android:text="@string/title_of_game_text"/>
<RelativeLayout
    android:id="@+id/adLayer"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    etc.   etc./>

然后,您需要将活动中的代码更改为:

RelativeLayout layout = (RelativeLayout)findViewById(R.id.adLayer);

正如 BrainCrash 建议的那样。希望这可以帮助!

于 2012-12-01T03:21:07.090 回答
0

如果你使用 findViewById() 你必须传递一个 id,你传递一个“布局”。

应该是这样的:

RelativeLayout layout = (RelativeLayout)findViewById(R.id.adLayer);

创建一个以“adLayer”为“id”的布局,并将其放置在您希望广告显示的布局中。

于 2012-12-01T00:36:20.680 回答