Android 将Admob Google Play服务添加到Fragment中

Android 将Admob Google Play服务添加到Fragment中,android,android-fragments,android-actionbar,admob,Android,Android Fragments,Android Actionbar,Admob,我正在尝试从Android SDK迁移到Admob的Google Play服务。我在片段端添加java代码时遇到问题 <activity android:name="com.google.android.gms.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScr eenSize" />

我正在尝试从Android SDK迁移到Admob的Google Play服务。我在片段端添加java代码时遇到问题

  <activity android:name="com.google.android.gms.ads.AdActivity"     android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScr    eenSize" />

   <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
这是一个使用片段作为选项卡在XML布局之间导航的活动。在过去,我能够将所有admob信息直接添加到XML布局中。Google服务要求您在java端链接它

  <activity android:name="com.google.android.gms.ads.AdActivity"     android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScr    eenSize" />

   <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
它一直在崩溃,我不知道如何处理与碎片的意见。我正在考虑将其添加到Main.java中,但不确定TablListener将如何处理AdView

  <activity android:name="com.google.android.gms.ads.AdActivity"     android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScr    eenSize" />

   <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
在这件事上我需要一些帮助

  <activity android:name="com.google.android.gms.ads.AdActivity"     android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScr    eenSize" />

   <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
我已经做了以下几项: 1.将Google Play服务库添加到我的项目中 2.我在舱单上声明了所有的许可

  <activity android:name="com.google.android.gms.ads.AdActivity"     android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScr    eenSize" />

   <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
java是我的主要语言

  <activity android:name="com.google.android.gms.ads.AdActivity"     android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScr    eenSize" />

   <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
 public class Main extends Activity {
 // Declare Tab Variable
 ActionBar.Tab Tab1, Tab2, Tab3;
 Fragment fragmentTab1 = new FragmentTab1();
 Fragment fragmentTab2 = new FragmentTab2();
 Fragment fragmentTab3 = new FragmentTab3();


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

    ActionBar actionBar = getActionBar();

    // Hide Actionbar Icon
    // Set to False, we are not using icons
    actionBar.setDisplayShowHomeEnabled(false);

    // Hide Actionbar Title
    // Set to False, used up too much space on phones
    actionBar.setDisplayShowTitleEnabled(false);

    // Create Actionbar Tabs
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

    // Set Tab Icon and Titles
    // Titles are as follows below
    Tab1 = actionBar.newTab().setText("Tab 1");
    Tab2 = actionBar.newTab().setText("Tab 2");
    Tab3 = actionBar.newTab().setText("Tab 3);

    // Set Tab Listeners
    Tab1.setTabListener(new TabListener(fragmentTab1));
    Tab2.setTabListener(new TabListener(fragmentTab2));
    Tab3.setTabListener(new TabListener(fragmentTab3));

    // Add tabs to actionbar
    actionBar.addTab(Tab1);
    actionBar.addTab(Tab2);
    actionBar.addTab(Tab3);


}
}

TabListener.java for switching between fragments.

public class TabListener implements ActionBar.TabListener {

Fragment fragment;

public TabListener(Fragment fragment) {
    // TODO Auto-generated constructor stub
    this.fragment = fragment;
}

@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
    // TODO Auto-generated method stub
    ft.replace(R.id.fragment_container, fragment);

}

@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
    // TODO Auto-generated method stub
    ft.remove(fragment);
}

@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {
    // TODO Auto-generated method stub

}
}
例如,我的XML片段表1

  <activity android:name="com.google.android.gms.ads.AdActivity"     android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScr    eenSize" />

   <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:id="@+id/LinearLayout1"
          android:orientation="vertical"
          android:background="@drawable/background1"
          android:layout_width="fill_parent"
          android:layout_height="fill_parent">  

<com.google.android.gms.ads.AdView 
          xmlns:ads="http://schemas.android.com/apk/res-auto"
                    android:id="@+id/adView"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:layout_gravity="center_horizontal"
                     ads:adUnitId="@string/admob_string"
                     android:gravity="bottom"
                     ads:adSize="BANNER"/>

</LinearLayout>

您的AdView代码需要放入Fragment.java类,而不是Main.java类。另外,一个标准约定是命名为“Main”MainActivity.java,而不是Main.java

  <activity android:name="com.google.android.gms.ads.AdActivity"     android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScr    eenSize" />

   <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />