2017-01-26 1 views
0

Bitte helfen Sie mir. Dieser Code funktioniert nicht, wenn ich meinem Programm admob hinzufüge. Vielleicht benutze ich es falsch. Bitte schlagen Sie mir vor, den Code mit Banner ad admob zu bearbeiten. Wo sollte ich Admob-Code hinzufügen? Es gibt keinen Fehler im Debug, aber App läuft nicht. App kann nicht geladen werden. Vielen Dank.Hinzufügen von Banner ad Admob in Android Studio

@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

Erhalten Sie eine Fehlermeldung in Ihrer Debugging-Konsole? Was für einen Fehler hast du? – ItsOdi1

+0

Bitte laden Sie auch Ihre Layout-Datei –

+0

Es gibt keinen Fehler im Debugging-Code, apk baut und installiert in Mobile, kann aber nicht öffnen. –

Antwort

0

Sie müssen nur so etwas wie dies in Ihrer Tätigkeit haben:

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

Eine Ansicht mit Ihrem Add:

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

Die Anzeigenaktivität in 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"/> 

Und vergessen Sie nicht die Berechtigungen in AndroidManifest.xml:

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

Speichern Sie Ihre ID-Anzeigenblock in Ihrem strings.xml Datei . Die unten stehende ID dient nur zum Testen. Stellen Sie sicher, dass Sie sie ändern, bevor Sie Ihre App veröffentlichen.

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

Überprüfen Sie all dies und es sollte funktionieren.

+0

Ich habe getan, was Sie gesagt haben, aber nicht in Mobile arbeiten. –

+0

@kbharadwaj Wenn es nicht zu spät ist, überprüfen Sie die Änderung. Fügen Sie die Banner-ID in Ihre strings.xml-Datei ein – Laurent