微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从 AdMob 帐户加载广告时出现问题

如何解决从 AdMob 帐户加载广告时出现问题

我的贴纸应用与测试广告和来自活跃 AdMob 的广告完美搭配。但是,当我最近在 AdMob 上受到限制时,我的应用程序开始出现活动问题,当我从应用程序打开它时,它会在半秒或更短的时间内立即关闭,瞧瞧活动源代码
请注意,我在此活动中有两个插页式广告 - 横幅已停用
谢谢

 package com.maryapps.loveStickers;
    
    import android.content.Intent;
    import android.net.Uri;
    import android.os.AsyncTask;
    import android.os.Bundle;
    import android.text.format.Formatter;
    import android.util.Log;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.view.ViewTreeObserver;
    import android.widget.ImageView;
    import android.widget.TextView;
    
    import androidx.annotation.NonNull;
    import androidx.recyclerview.widget.GridLayoutManager;
    import androidx.recyclerview.widget.RecyclerView;
    
    import com.facebook.drawee.view.SimpleDraweeView;
    import com.google.android.gms.ads.AdError;
    import com.google.android.gms.ads.AdRequest;
    import com.google.android.gms.ads.AdView;
    import com.google.android.gms.ads.FullScreenContentCallback;
    import com.google.android.gms.ads.LoadAdError;
    import com.google.android.gms.ads.interstitial.InterstitialAd;
    import com.google.android.gms.ads.interstitial.InterstitialAdLoadCallback;
    
    import java.lang.ref.WeakReference;
    
    public class StickerPackDetailsActivity extends AddStickerPackActivity {
    
        /**
         * Do not change below values of below 3 lines as this is also used by WhatsApp
         */
        public static final String EXTRA_STICKER_PACK_ID = "sticker_pack_id";
        public static final String EXTRA_STICKER_PACK_AUTHORITY = "sticker_pack_authority";
        public static final String EXTRA_STICKER_PACK_NAME = "sticker_pack_name";
    
        public static final String EXTRA_STICKER_PACK_WEBSITE = "sticker_pack_website";
        private InterstitialAd mInterstitialAd;
        public static final String EXTRA_STICKER_PACK_EMAIL = "sticker_pack_email";
        public static final String EXTRA_STICKER_PACK_PRIVACY_POLICY = "sticker_pack_privacy_policy";
        public static final String EXTRA_STICKER_PACK_LICENSE_AGREEMENT = "sticker_pack_license_agreement";
        public static final String EXTRA_STICKER_PACK_TRAY_ICON = "sticker_pack_tray_icon";
        public static final String EXTRA_SHOW_UP_BUTTON = "show_up_button";
        public static final String EXTRA_STICKER_PACK_DATA = "sticker_pack";
    
    
        private RecyclerView recyclerView;
        private GridLayoutManager layoutManager;
        private StickerPreviewAdapter stickerPreviewAdapter;
        private int numColumns;
        private AdView mAdView;
        private View addButton;
        private View alreadyAddedText;
        private StickerPack stickerPack;
        private View divider;
        private WhiteListCheckAsyncTask whiteListCheckAsyncTask;
    
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_sticker_pack_details);
            boolean showUpButton = getIntent().getBooleanExtra(EXTRA_SHOW_UP_BUTTON,false);
            stickerPack = getIntent().getParcelableExtra(EXTRA_STICKER_PACK_DATA);
            TextView packNameTextView = findViewById(R.id.pack_name);
            TextView packPublisherTextView = findViewById(R.id.author);
            ImageView packTrayIcon = findViewById(R.id.tray_image);
            TextView packSizeTextView = findViewById(R.id.pack_size);
            SimpleDraweeView expandedStickerView = findViewById(R.id.sticker_details_expanded_sticker);
    
    
    
            //Banner in sticker pack details
            /*
            mAdView = findViewById(R.id.adView);
            AdRequest adRequest = new AdRequest.Builder().build();
            mAdView.loadAd(adRequest);
            */
    
    
            admobinter2();
            addButton = findViewById(R.id.add_to_whatsapp_button);
            alreadyAddedText = findViewById(R.id.already_added_text);
            layoutManager = new GridLayoutManager(this,1);
            recyclerView = findViewById(R.id.sticker_list);
            recyclerView.setLayoutManager(layoutManager);
            recyclerView.getViewTreeObserver().addOnGlobalLayoutListener(pageLayoutListener);
            recyclerView.addOnScrollListener(dividerScrollListener);
            divider = findViewById(R.id.divider);
            if (stickerPreviewAdapter == null) {
                stickerPreviewAdapter = new StickerPreviewAdapter(getLayoutInflater(),R.drawable.sticker_error,getResources().getDimensionPixelSize(R.dimen.sticker_pack_details_image_size),getResources().getDimensionPixelSize(R.dimen.sticker_pack_details_image_padding),stickerPack,expandedStickerView);
                recyclerView.setAdapter(stickerPreviewAdapter);
            }
            packNameTextView.setText(stickerPack.name);
            packPublisherTextView.setText(stickerPack.publisher);
            packTrayIcon.setimageURI(StickerPackLoader.getStickerAssetUri(stickerPack.identifier,stickerPack.trayImageFile));
            packSizeTextView.setText(Formatter.formatShortFileSize(this,stickerPack.getTotalSize()));
            addButton.setonClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    request();
                    addStickerPackToWhatsApp(stickerPack.identifier,stickerPack.name);
                }
            });
            if (getSupportActionBar() != null) {
                getSupportActionBar().setdisplayHomeAsUpEnabled(showUpButton);
                getSupportActionBar().setTitle(showUpButton ? getResources().getString(R.string.title_activity_sticker_pack_details_multiple_pack) : getResources().getQuantityString(R.plurals.title_activity_sticker_packs_list,1));
            }
            findViewById(R.id.sticker_pack_animation_indicator).setVisibility(stickerPack.animatedStickerPack ? View.VISIBLE : View.GONE);
        }
    
        private void launchInfoActivity(String publisherWebsite,String publisherEmail,String privacyPolicyWebsite,String licenseAgreementWebsite,String trayIconUriString) {
            Intent intent = new Intent(StickerPackDetailsActivity.this,StickerPackInfoActivity.class);
            intent.putExtra(StickerPackDetailsActivity.EXTRA_STICKER_PACK_ID,stickerPack.identifier);
            intent.putExtra(StickerPackDetailsActivity.EXTRA_STICKER_PACK_WEBSITE,publisherWebsite);
            intent.putExtra(StickerPackDetailsActivity.EXTRA_STICKER_PACK_EMAIL,publisherEmail);
            intent.putExtra(StickerPackDetailsActivity.EXTRA_STICKER_PACK_PRIVACY_POLICY,privacyPolicyWebsite);
            intent.putExtra(StickerPackDetailsActivity.EXTRA_STICKER_PACK_LICENSE_AGREEMENT,licenseAgreementWebsite);
            intent.putExtra(StickerPackDetailsActivity.EXTRA_STICKER_PACK_TRAY_ICON,trayIconUriString);
            startActivity(intent);
        }
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            getMenuInflater().inflate(R.menu.toolbar,menu);
            return super.onCreateOptionsMenu(menu);
        }
    
        @Override
        public boolean onoptionsItemSelected(MenuItem item) {
            if (item.getItemId() == R.id.action_info && stickerPack != null) {
                Uri trayIconUri = StickerPackLoader.getStickerAssetUri(stickerPack.identifier,stickerPack.trayImageFile);
                launchInfoActivity(stickerPack.publisherWebsite,stickerPack.publisherEmail,stickerPack.privacyPolicyWebsite,stickerPack.licenseAgreementWebsite,trayIconUri.toString());
                return true;
            }
            return super.onoptionsItemSelected(item);
        }
    
    
        private final ViewTreeObserver.OnGlobalLayoutListener pageLayoutListener = new ViewTreeObserver.OnGlobalLayoutListener() {
            @Override
            public void onGlobalLayout() {
                setNumColumns(recyclerView.getWidth() / recyclerView.getContext().getResources().getDimensionPixelSize(R.dimen.sticker_pack_details_image_size));
            }
        };
    
        private void setNumColumns(int numColumns) {
            if (this.numColumns != numColumns) {
                layoutManager.setSpanCount(numColumns);
                this.numColumns = numColumns;
                if (stickerPreviewAdapter != null) {
                    stickerPreviewAdapter.notifyDataSetChanged();
                }
            }
        }
    
        private final RecyclerView.OnScrollListener dividerScrollListener = new RecyclerView.OnScrollListener() {
            @Override
            public void onScrollStateChanged(@NonNull final RecyclerView recyclerView,final int newState) {
                super.onScrollStateChanged(recyclerView,newState);
                updateDivider(recyclerView);
            }
    
            @Override
            public void onScrolled(@NonNull final RecyclerView recyclerView,final int dx,final int dy) {
                super.onScrolled(recyclerView,dx,dy);
                updateDivider(recyclerView);
            }
    
            private void updateDivider(RecyclerView recyclerView) {
                boolean showDivider = recyclerView.computeVerticalScrollOffset() > 0;
                if (divider != null) {
                    divider.setVisibility(showDivider ? View.VISIBLE : View.INVISIBLE);
                }
            }
        };
        public void request(){
            AdRequest adRequest = new AdRequest.Builder().build();
            InterstitialAd.load(this,getString(R.string.admobinter),adRequest,new InterstitialAdLoadCallback() {
                @Override
                public void onAdLoaded(@NonNull InterstitialAd interstitialAd) {
                    // The mInterstitialAd reference will be null until
                    // an ad is loaded.
                    mInterstitialAd = interstitialAd;
                    if (mInterstitialAd != null) {
                        mInterstitialAd.show(StickerPackDetailsActivity.this);
                    }
                    mInterstitialAd.setFullScreenContentCallback(new FullScreenContentCallback(){
                        @Override
                        public void onAddismissedFullScreenContent() {
                            // Called when fullscreen content is dismissed.
    
                        }
    
                        @Override
                        public void onAdFailedToShowFullScreenContent(AdError adError) {
                            // Called when fullscreen content Failed to show.
                            Log.d("TAG","The ad Failed to show.");
    
                        }
    
                        @Override
                        public void onAdShowedFullScreenContent() {
                            // Called when fullscreen content is shown.
                            // Make sure to set your reference to null so you don't
                            // show it a second time.
                            mInterstitialAd = null;
                            Log.d("TAG","The ad was shown.");
                        }
                    });
    
                }
    
                @Override
                public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) {
                    // Handle the error
    
                    mInterstitialAd = null;
                }
            });
        }
    
        @Override
        protected void onResume() {
            super.onResume();
            whiteListCheckAsyncTask = new WhiteListCheckAsyncTask(this);
            whiteListCheckAsyncTask.execute(stickerPack);
        }
        private InterstitialAd m2InterstitialAd;
        public void admobinter2(){
            AdRequest adRequest = new AdRequest.Builder().build();
            InterstitialAd.load(this,getString(R.string.admobinter2),new InterstitialAdLoadCallback() {
                @Override
                public void onAdLoaded(@NonNull InterstitialAd interstitialAd) {
                    // The m2InterstitialAd reference will be null until
                    // an ad is loaded.
                    m2InterstitialAd = interstitialAd;
    
                    m2InterstitialAd.setFullScreenContentCallback(new FullScreenContentCallback(){
                        @Override
                        public void onAddismissedFullScreenContent() {
                            // Called when fullscreen content is dismissed.
                        finish();
                        }
    
                        @Override
                        public void onAdFailedToShowFullScreenContent(AdError adError) {
                            // Called when fullscreen content Failed to show.
                            Log.d("TAG","The ad Failed to show.");
                            finish();
                        }
    
                        @Override
                        public void onAdShowedFullScreenContent() {
                            // Called when fullscreen content is shown.
                            // Make sure to set your reference to null so you don't
                            // show it a second time.
                            m2InterstitialAd = null;
                            Log.d("TAG","The ad was shown.");
                        }
                    });
    
                }
    
                @Override
                public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) {
                    // Handle the error
                    finish();
                    m2InterstitialAd = null;
                }
            });
        }
    
        @Override
        protected void onPause() {
            super.onPause();
            if (whiteListCheckAsyncTask != null && !whiteListCheckAsyncTask.isCancelled()) {
                whiteListCheckAsyncTask.cancel(true);
            }
        }
    
        @Override
        public void onBackpressed() {
            if (m2InterstitialAd != null) {
                m2InterstitialAd.show(StickerPackDetailsActivity.this);
            }
        }
    
        private void updateAddUI(Boolean isWhitelisted) {
            if (isWhitelisted) {
                addButton.setVisibility(View.GONE);
                alreadyAddedText.setVisibility(View.VISIBLE);
                findViewById(R.id.sticker_pack_details_tap_to_preview).setVisibility(View.GONE);
            } else {
                addButton.setVisibility(View.VISIBLE);
                alreadyAddedText.setVisibility(View.GONE);
                findViewById(R.id.sticker_pack_details_tap_to_preview).setVisibility(View.VISIBLE);
            }
        }
    
        static class WhiteListCheckAsyncTask extends AsyncTask<StickerPack,Void,Boolean> {
            private final WeakReference<StickerPackDetailsActivity> stickerPackDetailsActivityWeakReference;
    
            WhiteListCheckAsyncTask(StickerPackDetailsActivity stickerPackListActivity) {
                this.stickerPackDetailsActivityWeakReference = new WeakReference<>(stickerPackListActivity);
            }
    
            @Override
            protected final Boolean doInBackground(StickerPack... stickerPacks) {
                StickerPack stickerPack = stickerPacks[0];
                final StickerPackDetailsActivity stickerPackDetailsActivity = stickerPackDetailsActivityWeakReference.get();
                if (stickerPackDetailsActivity == null) {
                    return false;
                }
                return WhitelistCheck.isWhitelisted(stickerPackDetailsActivity,stickerPack.identifier);
            }
    
            @Override
            protected void onPostExecute(Boolean isWhitelisted) {
                final StickerPackDetailsActivity stickerPackDetailsActivity = stickerPackDetailsActivityWeakReference.get();
                if (stickerPackDetailsActivity != null) {
                    stickerPackDetailsActivity.updateAddUI(isWhitelisted);
                }
            }
        }
    
    }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?