Java NativeExpressAdView不使用本机广告单元id,但可以使用横幅广告单元id

Java NativeExpressAdView不使用本机广告单元id,但可以使用横幅广告单元id,java,android,Java,Android,我已经在我的项目中集成了admob,根据要求,我正在使用NativeExpressAdView来显示本地广告。但是它不适用于本地的单位ID。但是当我在NativeExpressAdView中添加banner的单位ID时,它可以工作,如下所示: XML代码: <com.google.android.gms.ads.NativeExpressAdView android:id="@+id/adView" andro

我已经在我的项目中集成了admob,根据要求,我正在使用NativeExpressAdView来显示本地广告。但是它不适用于本地的单位ID。但是当我在NativeExpressAdView中添加banner的单位ID时,它可以工作,如下所示:

XML代码:

<com.google.android.gms.ads.NativeExpressAdView
                    android:id="@+id/adView"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_centerInParent="true"
                    ads:adUnitId="@string/admob_id_banner"
                    ads:adSize="FULL_WIDTHx220
</com.google.android.gms.ads.NativeExpressAdView>
当我使用本机单元id时,它总是显示“内部错误”。但是如果我在NativeExpressAdView中使用横幅id,它工作正常


这是在NativeExpressAdView中使用横幅单元id的正确解决方案吗?这可能是什么原因呢?

只有当您提到完美的AdSize时,才会显示NativeADS。试试不同的尺寸。例如,当您第一次测试NativeAd时,请查看此文档,尝试在您的移动设备中以横向模式进行测试。有时,宽度也可能是问题所在,NativeAd可能不会出现。
AdRequest adRequest = new AdRequest.Builder()
//.addTestDevice("6D446467FCE9EB26F0F478F9B93230AC")
.build();
adView.setAdListener(new AdListener() {

    @Override
    public void onAdClosed() {
        super.onAdClosed();
    }

    @Override
    public void onAdFailedToLoad(int i) {
        super.onAdFailedToLoad(i);
        String mErrorCode = "default";
        switch (i){
            case AdRequest.ERROR_CODE_INTERNAL_ERROR:
            mErrorCode = "internal error";
            break;
            case AdRequest.ERROR_CODE_INVALID_REQUEST:
            mErrorCode = "invalid request";
            break;
            case AdRequest.ERROR_CODE_NETWORK_ERROR:
            mErrorCode = "network error";
            break;
            case AdRequest.ERROR_CODE_NO_FILL:
            mErrorCode = "no fill";
            break;
        }
        Toast.makeText(HomeActivity.this, String.format("onAdFailedToLoad(%S)",mErrorCode), Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onAdLeftApplication() {
        super.onAdLeftApplication();
    }

    @Override
    public void onAdOpened() {
        super.onAdOpened();
    }

    @Override
    public void onAdLoaded() {
        super.onAdLoaded();
    }
});
adView.loadAd(adRequest);