【发布时间】:2014-03-12 23:42:00
【问题描述】:
我正在尝试将 adMob 横幅广告添加到我的片段之一中用于我的 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 { 私人 LayoutInflater 充气机; 私有 PostData[] 数据; 私人活动主活动; 私人 AdView adView;
public PostItemAdapter(上下文上下文, int textViewResourceId, PostData[] 对象){ 超级(上下文,textViewResourceId,对象); // TODO 自动生成的构造函数存根 mainActivity =(活动)上下文; 充气机 = mainActivity.getLayoutInflater(); 数据=对象; }
静态类 ViewHolder { 文本视图 postTitleView; 文本视图 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) { 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 { 私人 LayoutInflater 充气机; 私有 PostData[] 数据; 私人活动主活动; 私人 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.bxxxyxxxxxxxxLite.R.string;
/* * BxxxxListFragment 类:设置并显示列表中的所有 Bxxxx Activity。 */
公共类 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)
【问题讨论】: