2017-01-26 18 views
0

Пожалуйста, помогите мне. Этот код не работает, когда я добавляю admob в мою программу. Может быть, я использую это неправильно. Пожалуйста, предложите мне изменить код с помощью баннера ad admob. Где я должен добавить код admob? В Debug нет ошибки, но приложение не работает. Не удается загрузить приложение. Спасибо.Добавление баннера Admob в студию Android

@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> 
+1

Получаете ли вы какие-либо ошибки в вашей консоли отладки? Какая ошибка вы получаете? – ItsOdi1

+0

, пожалуйста, загрузите файл макета, а также –

+0

Ошибка в отладке кода, apk создает и устанавливает на мобильном телефоне, но не может открыть. –

ответ

0

Вам просто нужно иметь что-то подобное в вашей деятельности:

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

Вид с надстройкой:

<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"/> 

И не забудьте разрешения в вашем AndroidManifest.xml:

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

магазин ваш рекламный блок ID в файле strings.xml , Идентификатор ниже предназначен только для тестирования, обязательно измените его, прежде чем публиковать приложение.

<?xml version="1.0" encoding="utf-8"?> 
<resources>  
    <string name="banner_ad_unit_id">ca-app-pub-3940256099942544/6300978111</string> 
</resources> 

Проверьте все это, и оно должно работать.

+0

Я сделал то, что вы сказали, но не работал на мобильных устройствах. –

+0

@kbharadwaj, если не слишком поздно проверить изменение. Добавьте идентификатор баннера в файл strings.xml – Laurent

 Смежные вопросы

  • Нет связанных вопросов^_^