我尝试使用本教程https://github.com/mopub/mopub-android-sdk/wiki/Native-Ads-Integration
放置原生广告即使我正确设置了视图绑定器(并且我看到它的值正确),logcat打印出来"尝试将文本(我的虚拟广告)添加到null TextView。"
这是我在BaseAdapter中的getView的开头:
public View getView(int position, View convertView, ViewGroup parent) {
if (moPubNativeResponse != null && mAdapterHelper.isAdPosition(position)) {
View adView = mAdapterHelper.getAdView(convertView, parent, moPubNativeResponse, viewBinder, null);
return adView;
}
知道原因吗?
答案 0 :(得分:0)
旧问题(可能是较旧的MoPub版本),但我今天在LogCat中遇到此消息,发现NativeViewHolder正在为本机广告的所有组件调用addTextView() - 即使那些未在请求参数中指定的组件。我通过简单地评论日志消息来解决它;你也可以在update()函数中为TextViews添加简单的空值检查,而不是让它落到AddTextView()。
private void addTextView(@Nullable final TextView textView, @Nullable final String contents) {
if (textView == null) {
// MoPubLog.d("Attempted to add text (" + contents + ") to null TextView.");
return;
}
...
}
或
void update(@NonNull final NativeResponse nativeResponse) {
if (titleView != null) addTextView(titleView, nativeResponse.getTitle());
if (textView != null) addTextView(textView, nativeResponse.getText());
if (callToActionView != null) addTextView(callToActionView, nativeResponse.getCallToAction());
nativeResponse.loadMainImage(mainImageView);
nativeResponse.loadIconImage(iconImageView);
}
注意:只有在您将MoPub SDK作为库模块导入时才能使用此解决方案(因此可以编辑其源代码)。