MoPub的ViewBinder无法在原生广告中放置TextView

时间:2014-07-28 08:24:53

标签: android mopub

我尝试使用本教程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;
    }

知道原因吗?

1 个答案:

答案 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作为库模块导入时才能使用此解决方案(因此可以编辑其源代码)。