在Android工作室中添加横幅广告Admob

时间:2017-01-26 12:03:51

标签: android admob banner-ads

请帮帮我。当我将admob添加到我的程序时,此代码无效。可能是我以错误的方式使用它。请建议我使用banner ad admob编辑代码。我应该在哪里添加admob代码? Debug中没有错误,但应用程序未运行无法加载应用程序。谢谢。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_nvg_drawer);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
            this, drawer, toolbar, R.string.navigation_drawer_open,    R.string.navigation_drawer_close);
    drawer.setDrawerListener(toggle);
    toggle.syncState();

    NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
    navigationView.setNavigationItemSelectedListener(this);

    mYoutubeDataApi = new YouTube.Builder(mTransport, mJsonFactory, null)
            .setApplicationName(getResources().getString(R.string.app_name))
            .build();

    youtubePlaylist = getString(R.string.playlist_1);
    token = null;
    listVideoInfo = null;
    listViewVideo = (ListView) findViewById(R.id.list_view_video);
    listViewVideo.setOnItemClickListener(onItemClickListener);

    setTitle(getIntent().getStringExtra("USER_NAME"));
    loadPlayList();

    mAdView = (AdView) findViewById(R.id.ad_view);
    AdRequest adRequest = new AdRequest.Builder()
            .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
            .addTestDevice("55DBCB068B472972E7ABC20D047D27E4")// Add your real device id here
            .build();
    // Start loading the ad in the background.
    mAdView.loadAd(adRequest);
}

/**
 * Called when leaving the activity
 */
@Override
public void onPause() {
    if (mAdView != null) {
        mAdView.pause();
    }
    super.onPause();
}

/**
 * Called when returning to the activity
 */
@Override
public void onResume() {
    super.onResume();
    if (mAdView != null) {
        mAdView.resume();
    }
}

/**
 * Called before the activity is destroyed
 */
@Override
public void onDestroy() {
    if (mAdView != null) {
        mAdView.destroy();
    }
    super.onDestroy();
}


private void loadPlayList(){
    new GetPlaylistAsyncTask(mYoutubeDataApi, getApplicationContext()) {
        int numbersPage;
        @Override
        protected void onProgressUpdate(final Integer... values) {
            super.onProgressUpdate(values);
            numbersPage = values[0] / 10;
        }

        @Override
        public void onPostExecute(Pair<String, List<VideoInfo>> result) {
            token=result.first;
            if(listVideoInfo ==null) {
                listVideoInfo = result.second;
                adapterVideo=new AdapterVideo(getApplicationContext(), listVideoInfo);
                listViewVideo.setAdapter(adapterVideo);
                listViewVideo.setOnScrollListener(new InfiniteScrollListener(1,numbersPage) {
                    @Override
                    public void onReloadItems(int pageToRequest) {
                        loadPlayList();
                    }

                    @Override
                    public void onReloadFinished() {

                    }
                });
            }
            else {
                listVideoInfo.addAll(result.second);
                adapterVideo.notifyDataSetChanged();
            }
        }
    }.execute(youtubePlaylist, token);
}

AdapterView.OnItemClickListener onItemClickListener = new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position,  long id) {
        Intent intent = new Intent(getApplicationContext(),      YtbActivity.class);
        intent.putExtra("VIDEO_ID", listVideoInfo.get(position).getId());
        startActivity(intent);
    }
};

@Override
public void onBackPressed() {
    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    if (drawer.isDrawerOpen(GravityCompat.START)) {
        drawer.closeDrawer(GravityCompat.START);
    } else {
        super.onBackPressed();
    }

}


@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();

    //noinspection SimplifiableIfStatement
    if (id == R.id.action_settings) {
        return true;
    }

    return super.onOptionsItemSelected(item);
}

@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item) {
    int id = item.getItemId();

    if (id == R.id.pl_list1) {
        youtubePlaylist = getString(R.string.playlist_1);
        listVideoInfo =null;
        token=null;
        loadPlayList();
    } else if (id == R.id.pl_list2) {
        youtubePlaylist = getString(R.string.playlist_2);
        listVideoInfo =null;
        token=null;
        loadPlayList();
    } else if (id == R.id.pl_list3) {
        youtubePlaylist = getString(R.string.playlist_3);
        listVideoInfo =null;
        token=null;
        loadPlayList();
    }

    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    drawer.closeDrawer(GravityCompat.START);
    return true;
}

}

activity_main.xml中

<android.support.design.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:context=".MainActivity">

    <RelativeLayout
        android:id="@+id/main_content"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <android.support.design.widget.CoordinatorLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_above="@+id/ad_view">

            <android.support.design.widget.AppBarLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:theme="@style/AppTheme.AppBarOverlay">

                <android.support.v7.widget.Toolbar
                    android:id="@+id/toolbar"
                    android:layout_width="match_parent"
                    android:layout_height="?attr/actionBarSize"
                    android:background="?attr/colorPrimary"
                    app:layout_scrollFlags="scroll|enterAlways"
                    app:popupTheme="@style/AppTheme.PopupOverlay" />


            </android.support.design.widget.AppBarLayout>

            <ListView
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:id="@+id/list_view_video">

            </ListView>

        </android.support.design.widget.CoordinatorLayout>

        <com.google.android.gms.ads.AdView
            android:id="@+id/ad_view"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_alignParentBottom="true"
            ads:adSize="BANNER"
            ads:adUnitId="ca-app-pub-3940256099942544/6300978111">
        </com.google.android.gms.ads.AdView>

    </RelativeLayout>
    </android.support.design.widget.CoordinatorLayout>

3 个答案:

答案 0 :(得分:0)

您只需要在活动中使用以下内容:

{
  "rules": {
    ".read": "auth != null",
    ".write": "auth != null",

    "divisions": {
      ".indexOn": "index_num"
    },

      "districts": {
      ".indexOn": "index_num"
    },

  }
}

您添加的视图:

 AdView adView = (AdView)findViewById(R.id.adView);
 AdRequest adRequest = new AdRequest.Builder().build();
 adView.loadAd(adRequest);     

AndroidManifest.xml中的广告活动:

<RelativeLayout> 
 ...
    <com.google.android.gms.ads.AdView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_alignParentBottom="true"
        ads:adSize="BANNER"
        ads:adUnitId="@string/banner_ad_unit_id"
        android:id="@+id/adView">
    </com.google.android.gms.ads.AdView>

</RelativeLayout> 

并且不要忘记AndroidManifest.xml中的权限:

<activity android:name="com.google.android.gms.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" android:theme="@android:style/Theme.Translucent"/>

将您的广告单元ID存储在strings.xml文件中。以下ID仅用于测试,请务必在发布应用之前对其进行更改。

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

检查所有这一切,它应该有效。

答案 1 :(得分:0)

$this->db->where('sales'  >= 0)

$this->db->where('sales'  <= 10)

$this->db->where('sales'  >= 15)

$this->db->where('sales'  <= 20)

将此代码放入onCreate(),广告监听器中并检查错误代码 比我说我给您解决方案的错误代码。

答案 2 :(得分:-1)

您应该重写LifeCycle方法并在其中清理资源。

@Override
public void onPause() {
    if (mAdView != null) {
        mAdView.pause();
    }
    super.onPause();
}
@Override
public void onResume() {
    super.onResume();
    if (mAdView != null) {
        mAdView.resume();
    }
}
@Override
public void onDestroy() {
    if (mAdView != null) {
        mAdView.destroy();
    }
    super.onDestroy();