繁体   English   中英

如何使用最新的SDK将comMob Banner添加到getView中-com.google.android.gms.ads

[英]How to add adMob Banner into getView using the latest SDK - com.google.android.gms.ads

我正在尝试将adMob Banner广告添加到片段之一中用于ListView的getView方法中。 我正在使用最新的adMob SDK(com.google.android.gms.ads。)。

我仅找到使用旧版Google SDK的示例。 如果有人链接到当前版本的Google admob的示例,请告诉我。

仅供参考-我接受了蒂姆的建议。 我从http://jmsliu.com/1482/adding-admob-banner-in-android-listview-header.html找到了完整的代码示例。

我第一次向您展示了它,但是它设置了3个活动。 经过几个小时的测试,我想向您展示我的代码和我当前遇到的错误以及原始代码。 我在整个程序中添加了“ Log.i”,以确定导致异常终止的行。 看来广告返回的是null。 另外,请注意,原始代码版本(在错误部分之后)具有特殊的“ keytwordSet”逻辑。 我无法摆脱语法错误,因此将其从版本中删除。

AdRequest adRequest = new AdRequest(); Set keywordsSet = new HashSet(); keywordsSet.add("game"); keywordsSet.add("dating"); keywordsSet.add("money"); keywordsSet.add("girl"); adRequest.addKeywords(keywordsSet); adView.loadAd(adRequest);

新代码:

  • PostItemAdapter.java
    • 适配器类,它配置并返回ListView的视图
  • * /包com.jms.admobinlistview;

    导入java.util.HashSet; 导入java.util.Set; 导入com.google.android.gms.ads.AdRequest; 导入com.google.android.gms.ads.AdSize; 导入com.google.android.gms.ads.AdView; 导入com.google.android.gms.ads.mediation.admob.AdMobExtras; 导入android.app.Activity; 导入android.content.Context; 导入android.os.Bundle; 导入android.util.Log; 导入android.view.LayoutInflater; 导入android.view.View; 导入android.view.ViewGroup; 导入android.widget.AbsListView; 导入android.widget.ArrayAdapter; 导入android.widget.ImageView; 导入android.widget.LinearLayout; 导入android.widget.TextView;

    公共类PostItemAdapter扩展了ArrayAdapter {private LayoutInflater充气机; 私有PostData []数据; 私人活动mainActivity; 私人AdView adView;

    公共PostItemAdapter(上下文上下文,int textViewResourceId,PostData []对象){超级(上下文,textViewResourceId,对象); // TODO自动生成的构造函数存根mainActivity =(Activity)上下文; inflater = mainActivity.getLayoutInflater(); 数据=对象; }

    静态类ViewHolder {TextView postTitleView; TextView postDateView; ImageView postThumbView; }

    公共View getView(int position,View convertView,ViewGroup parent){ViewHolder viewHolder;

      if (position == 0) { if (convertView == null || !(convertView instanceof AdView)) { if (adView == null) { Log.i("1", "msg1"); AdView adView = new AdView(mainActivity); Log.i("2", "msg2"); adView.setAdUnitId("ca-app-pub-4409647944042499/8301167762"); Log.i("3", "msg3"); adView.setAdSize(AdSize.BANNER); Log.i("4", "msg4"); // Convert the default layout parameters so that they play > nice with // ListView. float density = mainActivity.getResources().getDisplayMetrics> ().density; int height = Math.round(AdSize.BANNER.getHeight() * density); AbsListView.LayoutParams params = new AbsListView.LayoutParams( AbsListView.LayoutParams.FILL_PARENT, height); adView.setLayoutParams(params); AdRequest adRequest = new AdRequest.Builder() .addTestDevice(AdRequest.DEVICE_ID_EMULATOR) .addTestDevice("TEST_DEVICE_ID") .build(); Log.i("5", "msg5"); adView.loadAd(adRequest); Log.i("6", "msg6"); } Log.i("7", "msg7"); convertView = adView; Log.i("8", "msg8"); } } else { Log.i("8", "msg8"); if (convertView == null || convertView instanceof AdView) { Log.i("9", "msg9"); convertView = inflater.inflate(R.layout.postitem, null); Log.i("10", "msg10"); viewHolder = new ViewHolder(); Log.i("11", "msg11"); viewHolder.postThumbView = (ImageView) convertView .findViewById(R.id.postThumb); Log.i("12", "msg12"); viewHolder.postTitleView = (TextView) convertView .findViewById(R.id.postTitleLabel); Log.i("13", "msg13"); viewHolder.postDateView = (TextView) convertView .findViewById(R.id.postDateLabel); Log.i("14", "msg14"); convertView.setTag(viewHolder); Log.i("15", "msg15"); } else { Log.i("16", "msg16"); viewHolder = (ViewHolder) convertView.getTag(); Log.i("17", "msg17"); } Log.i("18", "msg18"); if (datas[position].postThumbUrl == null) { Log.i("19", "msg19"); viewHolder.postThumbView .setImageResource(R.drawable.postthumb_loading); } Log.i("20", "msg20"); viewHolder.postTitleView.setText(datas[position].postTitle); viewHolder.postDateView.setText(datas[position].postDate); } Log.i("21", "msg21"); return convertView; 

    }}

    错误:

    03-16 21:34:10.509: I/1(415): msg1 03-16 21:34:10.530: I/2(415): msg2 03-16 21:34:10.530: I/3(415): msg3 03-16 21:34:10.530: I/4(415): msg4 03-16 21:34:10.582: I/5(415): msg5 03-16 21:34:10.609: D/dalvikvm(415): DexOpt: couldn't find field Landroid/content/res/Configuration;.smallestScreenWidthDp 03-16 21:34:10.609: W/dalvikvm(415): VFY: unable to resolve instance field 36 03-16 21:34:10.609: D/dalvikvm(415): VFY: replacing opcode 0x52 at 0x0012 03-16 21:34:10.623: D/dalvikvm(415): VFY: dead code 0x0014-0018 in
    Lcom/google/android/gms/common/GooglePlayServicesUtil;.b (Landroid/content/res/Resources;)Z 03-16 21:34:10.649: W/GooglePlayServicesUtil(415): Google Play Store is missing. 03-16 21:34:10.730: D/dalvikvm(415): DexOpt: --- BEGIN 'ads256706667.jar' (bootstrap=0) --- 03-16 21:34:10.919: D/dalvikvm(415): DexOpt: --- END 'ads256706667.jar' (success) --- 03-16 21:34:10.919: D/dalvikvm(415): DEX
    prep '/data/data/com.jms.admobinlistview/cache/ads256706667.jar': unzip in 2ms, rewrite 193ms 03-16 21:34:11.019: I/Ads(415): Use AdRequest.Builder.addTestDevice
    ("B3EEABB8EE11C2BE770B684D95219ECB") to get test ads on this device. 03-16 21:34:11.059: I/Ads(415): Starting ad request. 03-16 21:34:11.179: D/dalvikvm(415): GC_EXTERNAL_ALLOC freed 269K, 52% free 2677K/5575K,
    external 2032K/2137K, paused 74ms 03-16 21:34:11.499: I/6(415): msg6 03-16 21:34:11.499: I/7(415): msg7 03-16 21:34:11.499: I/8(415): msg8 03-16 21:34:11.509: I/21(415): msg21 03-16 21:34:11.509: D/AndroidRuntime(415): Shutting down VM 03-16 21:34:11.509: W/dalvikvm(415): threadid=1: thread exiting with uncaught exception
    (group=0x40015560) 03-16 21:34:11.589: E/AndroidRuntime(415): FATAL EXCEPTION: main 03-16 21:34:11.589: E/AndroidRuntime(415): java.lang.NullPointerException 03-16 21:34:11.589: E/AndroidRuntime(415): at android.widget.AbsListView.obtainView
    (AbsListView.java:1432) 03-16 21:34:11.589: E/AndroidRuntime(415): at android.widget.ListView.makeAndAddView
    (ListView.java:1745) 03-16 21:34:11.589: E/AndroidRuntime(415): at android.widget.ListView.fillDown
    (ListView.java:670) 03-16 21:34:11.589: E/AndroidRuntime(415): at android.widget.ListView.fillFromTop
    (ListView.java:727) 03-16 21:34:11.589: E/AndroidRuntime(415): at android.widget.ListView.layoutChildren
    (ListView.java:1598) 03-16 21:34:11.589: E/AndroidRuntime(415): at android.widget.AbsListView.onLayout
    (AbsListView.java:1260) 03-16 21:34:11.589: E/AndroidRuntime(415): at android.view.View.layout(View.java:7175) 03-16 21:34:11.589: E/AndroidRuntime(415): at android.widget.LinearLayout.setChildFrame
    (LinearLayout.java:1254) 03-16 21:34:11.589: E/AndroidRuntime(415): at android.widget.LinearLayout.layoutVertical
    (LinearLayout.java:1130) 03-16 21:34:11.589: E/AndroidRuntime(415): at android.widget.LinearLayout.onLayout (LinearLayout.java:1047) 03-16 21:34:11.589: E/AndroidRuntime(415): at android.view.View.layout(View.java:7175) 03-16 21:34:11.589: E/AndroidRuntime(415): at android.widget.FrameLayout.onLayout (FrameLayout.java:338) 03-16 21:34:11.589: E/AndroidRuntime(415): at android.view.View.layout(View.java:7175) 03-16 21:34:11.589: E/AndroidRuntime(415): at android.widget.LinearLayout.setChildFrame
    (LinearLayout.java:1254) 03-16 21:34:11.589: E/AndroidRuntime(415): at android.widget.LinearLayout.layoutVertical (LinearLayout.java:1130) 03-16 21:34:11.589: E/AndroidRuntime(415): at android.widget.LinearLayout.onLayout
    (LinearLayout.java:1047) 03-16 21:34:11.589: E/AndroidRuntime(415): at android.view.View.layout(View.java:7175) 03-16 21:34:11.589: E/AndroidRuntime(415): at android.widget.FrameLayout.onLayout (FrameLayout.java:338) 03-16 21:34:11.589: E/AndroidRuntime(415): at android.view.View.layout(View.java:7175) 03-16 21:34:11.589: E/AndroidRuntime(415): at android.view.ViewRoot.performTraversals
    (ViewRoot.java:1140) 03-16 21:34:11.589: E/AndroidRuntime(415): at android.view.ViewRoot.handleMessage (ViewRoot.java:1859) 03-16 21:34:11.589: E/AndroidRuntime(415): at android.os.Handler.dispatchMessage (Handler.java:99) 03-16 21:34:11.589: E/AndroidRuntime(415): at android.os.Looper.loop(Looper.java:123) 03-16 21:34:11.589: E/AndroidRuntime(415): at android.app.ActivityThread.main
    (ActivityThread.java:3683) 03-16 21:34:11.589: E/AndroidRuntime(415): at java.lang.reflect.Method.invokeNative(Native Method) 03-16 21:34:11.589: E/AndroidRuntime(415): at java.lang.reflect.Method.invoke(Method.java:507) 03-16 21:34:11.589: E/AndroidRuntime(415): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 03-16 21:34:11.589: E/AndroidRuntime(415): at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:597) 03-16 21:34:11.589: E/AndroidRuntime(415): at dalvik.system.NativeStart.main(Native Method) 03-16 21:34:17.879: I/Process(415): Sending signal. PID: 415 SIG: 9

adMob先前版本的原始代码:

/ ** * PostItemAdapter.java * *适配器类,用于配置并返回ListView的视图* * /包com.jms.admobinlistview;

导入java.util.HashSet; 导入java.util.Set;

导入android.app.Activity; 导入android.content.Context; 导入android.view.LayoutInflater; 导入android.view.View; 导入android.view.ViewGroup; 导入android.widget.ArrayAdapter; 导入android.widget.ImageView; 导入android.widget.TextView;

导入com.google.ads.AdRequest; 导入com.google.ads.AdSize; 导入com.google.ads.AdView;

公共类PostItemAdapter扩展了ArrayAdapter {private LayoutInflater充气机; 私有PostData []数据; 私人活动mainActivity; 私人AdView adView;

  public PostItemAdapter(Context context, int textViewResourceId, PostData[] objects) { super(context, textViewResourceId, objects); // TODO Auto-generated constructor stub mainActivity = (Activity) context; inflater = mainActivity.getLayoutInflater(); datas = objects; } static class ViewHolder { TextView postTitleView; TextView postDateView; ImageView postThumbView; } public View getView(int position, View convertView, ViewGroup parent) { ViewHolder viewHolder; if (position == 0) { if (convertView == null || !(convertView instanceof AdView)) { if (adView == null) { adView = new AdView(mainActivity, AdSize.SMART_BANNER, "a151bd35eeb068d"); AdRequest adRequest = new AdRequest(); Set<String> keywordsSet = new HashSet<String>(); keywordsSet.add("game"); keywordsSet.add("dating"); keywordsSet.add("money"); keywordsSet.add("girl"); adRequest.addKeywords(keywordsSet); adView.loadAd(adRequest); } convertView = adView; } } else { if (convertView == null || convertView instanceof AdView) { convertView = inflater.inflate(R.layout.postitem, null); viewHolder = new ViewHolder(); viewHolder.postThumbView = (ImageView) convertView .findViewById(R.id.postThumb); viewHolder.postTitleView = (TextView) convertView .findViewById(R.id.postTitleLabel); viewHolder.postDateView = (TextView) convertView .findViewById(R.id.postDateLabel); convertView.setTag(viewHolder); } else { viewHolder = (ViewHolder) convertView.getTag(); } if (datas[position].postThumbUrl == null) { viewHolder.postThumbView .setImageResource(R.drawable.postthumb_loading); } viewHolder.postTitleView.setText(datas[position].postTitle); viewHolder.postDateView.setText(datas[position].postDate); } return convertView; } 

}

================================================== ============================

蒂姆,谢谢你回到我身边。 以下是我得到的代码和错误消息。 我尝试了几种方法,但仍会收到相同类型的错误。 能否请您澄清一下您的解释? 权限真的是预览吗?

package com.robertrichardson.bxxxyxxxxzxxxxLite;

导入java.util.ArrayList; 导入java.util.HashSet; 导入java.util.Set;

导入android.annotation.TargetApi; 导入android.content.Context; 导入android.content.Intent; 导入android.database.DataSetObserver; 导入android.net.ConnectivityManager; 导入android.os.Build; 导入android.os.Bundle; 导入android.support.v4.content.Loader; 导入android.text.format.DateFormat; 导入android.util.Log; 导入android.view.ContextMenu; 导入android.view.ContextMenu.ContextMenuInfo; 导入android.view.LayoutInflater; 导入android.view.View; 导入android.view.ViewGroup; 导入android.widget.AbsListView; 导入android.widget.AbsListView.MultiChoiceModeListener; 导入android.widget.AdapterView.AdapterContextMenuInfo; 导入android.widget.ArrayAdapter; 导入android.widget.BaseAdapter; 导入android.widget.Button; 导入android.widget.CheckBox; 导入android.widget.ImageButton; 导入android.widget.LinearLayout; 导入android.widget.ListView; 导入android.widget.RelativeLayout; 导入android.widget.TextView;

导入com.actionbarsherlock.app.SherlockListFragment; 导入com.actionbarsherlock.view.MenuInflater; 导入android.app.Activity;

导入com.google.android.gms.ads.AdListener; 导入com.google.android.gms.ads.AdRequest; 导入com.google.android.gms.ads.AdRequest.Builder; 导入com.google.android.gms.ads.AdSize; 导入com.google.android.gms.ads.AdView; 导入com.google.android.gms.ads.doubleclick.PublisherAdRequest; 导入com.google.android.gms.ads.doubleclick.PublisherAdView; 导入com.google.android.gms.drive.query.internal.InFilter; 导入com.robertrichardson.bxxxyxxxxzxxxxLite.R.string;

/ * * BxxxxListFragment类:设置并在列表上显示所有Bxxxx活动。 * /

公共类BxxxxListFragment扩展了SherlockListFragment {

  private ArrayList<Bxxxx> mBxxxx; private boolean mSubtitleVisible; private LayoutInflater inflater; private Activity mainActivity; private static final String AD_UNIT_ID = "ca-app-pub-4409647944042499/8301167762"; public static final String TAG = "BxxxxListFragment"; 

//私人AdView adView; 私人AdView adView;

  @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); /* * New ads Logic */ setHasOptionsMenu(true); getSherlockActivity().setTitle(R.string.app_name); mBxxxx = BxxxxLab.get(getSherlockActivity()).getBxxxx(); BxxxxAdapter adapter = new BxxxxAdapter(mBxxxx); setListAdapter(adapter); setRetainInstance(true); mSubtitleVisible = false; } @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); setEmptyText(getResources().getString(string.new_bxxxx_attack_empty_desc)); registerForContextMenu(getListView()); setHasOptionsMenu(true); } @TargetApi(11) @Override public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) { View v = super.onCreateView(inflater, parent, savedInstanceState); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { if (mSubtitleVisible) { getSherlockActivity().getSupportActionBar().setSubtitle(R.string.subtitle); } } ListView listView = (ListView)v.findViewById(android.R.id.list); if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) { // Use floating point context menus on Froyer and Gingerbread registerForContextMenu(listView); } else { // Use contextual action bar on Honeycomb and higher listView.setChoiceMode(AbsListView.CHOICE_MODE_MULTIPLE); listView.setMultiChoiceModeListener(new MultiChoiceModeListener() { public boolean onActionItemClicked( android.view.ActionMode arg0, android.view.MenuItem arg1) { // TODO Auto-generated method stub return false; } public boolean onCreateActionMode(android.view.ActionMode mode, android.view.Menu menu) { // TODO Auto-generated method stub return false; } public void onDestroyActionMode(android.view.ActionMode mode) { // TODO Auto-generated method stub } public boolean onPrepareActionMode( android.view.ActionMode mode, android.view.Menu menu) { // TODO Auto-generated method stub return false; } public void onItemCheckedStateChanged( android.view.ActionMode mode, int position, long id, boolean checked) { // TODO Auto-generated method stub } // ActionMode.Callback methods }); } return v; 

}

  @Override public void onListItemClick(ListView l, View v, int position, long id) { Bxxxx c = ((BxxxxAdapter)getListAdapter()).getItem(position); // Start Bxxxx Activity Intent i = new Intent(getSherlockActivity(), BxxxxPagerActivity.class); i.putExtra(BxxxxFragment.EXTRA_BULLIED_ID, c.getId()); startActivityForResult(i, 0); } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) {> ((BxxxxAdapter)getListAdapter()).notifyDataSetChanged(); } @Override public void onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu, MenuInflater inflater) { super.onCreateOptionsMenu(menu, inflater); inflater.inflate(R.menu.fragment_bxxxx_list, menu); } @TargetApi(11) @Override public boolean onOptionsItemSelected(com.actionbarsherlock.view.MenuItem item) { switch (item.getItemId()) { case R.id.settings: Intent i=new Intent(getSherlockActivity(), Preferences.class); startActivity(i); return(true); case R.id.about: i=new Intent(getSherlockActivity(),BxxxxContentActivity.class); i.putExtra(BxxxxContentActivity.EXTRA_FILE, "file:///android_asset/misc/about.html"); startActivity(i); return(true); case R.id.help: i=new Intent(getSherlockActivity(),BxxxxContentActivity.class); i.putExtra(BxxxxContentActivity.EXTRA_FILE, "file:///android_asset/misc/help.html"); startActivity(i); return(true); case R.id.disclaimer: i=new Intent(getSherlockActivity(),BxxxxContentActivity.class); i.putExtra(BxxxxContentActivity.EXTRA_FILE, "file:///android_asset/misc/disclaimer.html"); startActivity(i); return(true); case R.id.menu_item_new_bxxxx: Bxxxx bxxxx = new Bxxxx(); BxxxxLab.get(getSherlockActivity()).addBxxxx(bxxxx); i = new Intent(getSherlockActivity(), BxxxxPagerActivity.class); i.putExtra(BxxxxFragment.EXTRA_BULLIED_ID, bxxxx.getId()); startActivityForResult(i,0); return true; default: return super.onOptionsItemSelected(item); } } @Override public void onCreateContextMenu(ContextMenu menu,View v, ContextMenuInfo menuInfo) { getActivity().getMenuInflater().inflate(R.menu.bxxxx_list_item_context, menu); } @Override public boolean onContextItemSelected(android.view.MenuItem item) { AdapterContextMenuInfo info = (AdapterContextMenuInfo)item.getMenuInfo(); int position = info.position; BxxxxAdapter adapter = (BxxxxAdapter)getListAdapter(); Bxxxx bxxxx = adapter.getItem(position); switch (item.getItemId()) { case R.id.menu_item_delete_bxxxx: BxxxxLab.get(getActivity()).deleteBxxxx(bxxxx); adapter.notifyDataSetChanged(); return true; } return super.onContextItemSelected(item); } private class BxxxxAdapter extends ArrayAdapter<Bxxxx> { public BxxxxAdapter(ArrayList<Bxxxx> bxxxx) { super(getSherlockActivity(), android.R.layout.simple_list_item_1, bxxxx); } @Override public View getView(int position, View convertView, ViewGroup parent) { 

/ * *新广告逻辑
* /
Log.i(“ 1”,“ msg1”);

  if (position == 0) { if (convertView == null || !(convertView instanceof AdView)) { if (adView == null) { Log.i("2", "msg2"); adView = new AdView(mainActivity); <=== Abends on this line Log.i("3", "msg3"); adView.setAdUnitId("ca-app-pub-4409647944042499/8301167762"); Log.i("4", "msg4"); adView.setAdSize(AdSize.BANNER); Log.i("5", "msg5"); // Convert the default layout parameters so that they play nice with // ListView. float density = mainActivity.getResources().getDisplayMetrics().density; int height = Math.round(AdSize.BANNER.getHeight() * density); AbsListView.LayoutParams params = new AbsListView.LayoutParams( AbsListView.LayoutParams.FILL_PARENT, height); adView.setLayoutParams(params); AdRequest adRequest = new AdRequest.Builder() .addTestDevice(AdRequest.DEVICE_ID_EMULATOR) .addTestDevice("TEST_DEVICE_ID") .build(); adView.loadAd(adRequest); } convertView = adView; return convertView; } return convertView; } else { if (convertView == null || convertView instanceof AdView) { // If we weren't given a view, inflate one if (convertView == null) { convertView = getSherlockActivity().getLayoutInflater() .inflate(R.layout.list_item_bxxxx, null); } // Enter the view of this Bxxxx Attack Bxxxx c = getItem(position); TextView titleTextView = (TextView)convertView.findViewById(R.id.bxxxx_list_item_titleTextView); titleTextView.setText(c.getTitle()); TextView dateTextView = (TextView)convertView.findViewById(R.id.bxxxx_list_item_dateTextView); dateTextView.setText(DateFormat.format("EEEE, MMM dd, yyyy hh : mm a", c.getDate()).toString()); CheckBox resolvedCheckBox = (CheckBox)convertView.findViewById(R.id.bxxxx_list_item_resolvedCheckBox); resolvedCheckBox.setChecked(c.isResolved()); return convertView; } return convertView; } } 

}

  @Override public void onResume() { super.onResume(); ((BxxxxAdapter)getListAdapter()).notifyDataSetChanged(); } } 

03-18 06:52:29.785: D/dalvikvm(932): VFY: replacing opcode 0x6f at 0x0006 03-18 06:52:30.085: I/1(932): msg1 03-18 06:52:30.085: I/2(932): msg2 03-18 06:52:30.085: D/AndroidRuntime(932): Shutting down VM 03-18 06:52:30.095: W/dalvikvm(932): threadid=1: thread exiting with uncaught exception (group=0x40015560) 03-18 06:52:30.135: E/AndroidRuntime(932): FATAL EXCEPTION: main 03-18 06:52:30.135: E/AndroidRuntime(932): java.lang.NullPointerException 03-18 06:52:30.135: E/AndroidRuntime(932): at android.view.ViewConfiguration.get(ViewConfiguration.java:228) 03-18 06:52:30.135: E/AndroidRuntime(932): at android.view.View.(View.java:1878) 03-18 06:52:30.135: E/AndroidRuntime(932): at android.view.ViewGroup.(ViewGroup.java:281) 03-18 06:52:30.135: E/AndroidRuntime(932): at com.google.android.gms.ads.AdView.(Unknown Source) 03-18 06:52:30.135: E/AndroidRuntime(932): at com.robertrichardson.bxxxyxxxxzxxxLite.BxxxxListFragment$BxxxxAdapter.getView(BxxxxListFragment.java:251) 03-18 06:52:30.135: E/AndroidRuntime(932): at android.widget.AbsListView.obtainView(AbsListView.java:1430) 03-18 06:52:30.135: E/AndroidRuntime(932): at android.widget.ListView.makeAndAddView(ListView.java:1745) 03-18 06:52:30.135: E/AndroidRuntime(932): at android.widget.ListView.fillDown(ListView.java:670) 03-18 06:52:30.135: E/AndroidRuntime(932): at android.widget.ListView.fillFromTop(ListView.java:727) 03-18 06:52:30.135: E/AndroidRuntime(932): at android.widget.ListView.layoutChildren(ListView.java:1598) 03-18 06:52:30.135: E/AndroidRuntime(932): at android.widget.AbsListView.onLayout(AbsListView.java:1260) 03-18 06:52:30.135: E/AndroidRuntime(932): at android.view.View.layout(View.java:7175) 03-18 06:52:30.135: E/AndroidRuntime(932): at android.widget.FrameLayout.onLayout(FrameLayout.java:338) 03-18 06:52:30.135: E/AndroidRuntime(932): at android.view.View.layout(View.java:7175) 03-18 06:52:30.135: E/AndroidRuntime(932): at android.widget.FrameLayout.onLayout(FrameLayout.java:338) 03-18 06:52:30.135: E/AndroidRuntime(932): at android.view.View.layout(View.java:7175) 03-18 06:52:30.135: E/AndroidRuntime(932): at android.widget.FrameLayout.onLayout(FrameLayout.java:338) 03-18 06:52:30.135: E/AndroidRuntime(932): at android.view.View.layout(View.java:7175) 03-18 06:52:30.135: E/AndroidRuntime(932): at android.widget.FrameLayout.onLayout(FrameLayout.java:338) 03-18 06:52:30.135: E/AndroidRuntime(932): at android.view.View.layout(View.java:7175) 03-18 06:52:30.135: E/AndroidRuntime(932): at android.widget.FrameLayout.onLayout(FrameLayout.java:338) 03-18 06:52:30.135: E/AndroidRuntime(932): at android.view.View.layout(View.java:7175) 03-18 06:52:30.135: E/AndroidRuntime(932): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1254) 03-18 06:52:30.135: E/AndroidRuntime(932): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1130) 03-18 06:52:30.135: E/AndroidRuntime(932): at android.widget.LinearLayout.onLayout(LinearLayout.java:1047)

好像您通过声明同名的局部变量在新代码中隐藏了类变量“ adView”。 由于范围的原因,您要将convertView设置为全局adView,该值始终为null。 只需将“ AdView adView =“更改为“ adView =”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM