java.lang.NoClassDefFoundError: com.google.android.gms.ads.InterstitialAd

Я пробовал все, что я мог найти в сети, чтобы решить эту проблему. Все, что я хочу, это воспроизвести рекламу после начала действия, но продолжать получать это сообщение об ошибке. Я удалял и добавлял его пару раз, как советовали многие посты, но не повезло. Может кто-нибудь, пожалуйста, помогите мне с этим. Я добавил google.play.service.libs в качестве кода Android ---> пометил его как библиотеку --> перешел к свойствам моего проекта, чтобы сослаться на него --> очистил оба проекта --RUn (ОШИБКА)

07-10 10:40:40.519: W/dalvikvm(31206): threadid=1: поток завершается с необработанным исключением (group=0x40dc8ac8) 07-10 10:40:40.529: E/AndroidRuntime(31206): НЕИСПРАВНОЕ ИСКЛЮЧЕНИЕ: main 07-10 10:40:40.529: E/AndroidRuntime(31206): java.lang.NoClassDefFoundError: com.google.android.gms.ads.InterstitialAd 07-10 10:40:40.529: E/AndroidRuntime(31206): в com.multiinspection5.Profile.onCreate(Profile.java:41) 07-10 10:40:40.529: E/AndroidRuntime(31206): в android.app.Activity.performCreate(Activity.java:5250) 07-10 10: 40:40.529: E/AndroidRuntime(31206): в android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1097) 07-10 10:40:40.529: E/AndroidRuntime(31206): в android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2211) 07-10 10:40:40.529: E/AndroidRuntime(31206): в android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2297) 07-10 10:40:40.529: E/AndroidRuntime (31206): в android.app.ActivityThread.access$700(Ac tivityThread.java:152) 07-10 10:40:40.529: E/AndroidRuntime(31206): в android.app.ActivityThread$H.handleMessage(ActivityThread.java:1282) 07-10 10:40:40.529: E/ AndroidRuntime(31206): в android.os.Handler.dispatchMessage(Handler.java:99) 07-10 10:40:40.529: E/AndroidRuntime(31206): в android.os.Looper.loop(Looper.java:137 ) 07-10 10:40:40.529: E/AndroidRuntime(31206): в android.app.ActivityThread.main(ActivityThread.java:5328) 07-10 10:40:40.529: E/AndroidRuntime(31206): в java .lang.reflect.Method.invokeNative(собственный метод) 07-10 10:40:40.529: E/AndroidRuntime(31206): в java.lang.reflect.Method.invoke(Method.java:511) 07-10 10: 40:40.529: E/AndroidRuntime(31206): на com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102) 07–10 10:40:40.529: E/AndroidRuntime(31206): на com .android.internal.os.ZygoteInit.main(ZygoteInit.java:869) 07-10 10:40:40.529: E/AndroidRuntime(31206): в dalvik.system.NativeStart.m ain (собственный метод)


person Ahsan    schedule 10.07.2014    source источник


Ответы (2)


Вы также должны указать ссылку на google-play-services.jar в своем проекте. Вы можете найти его в папке "libs" в проекте google-play-services-lib.

person JoniDS    schedule 10.07.2014
comment
я пробовал это, и это не сработало. Не рекомендуется этого делать, поскольку ADT ищет его в разделе «Зависимости Android», но я все же пытался - person Ahsan; 10.07.2014
comment
Я не думаю, что это связано, но вы добавили AdActivity в манифест своего приложения? - person JoniDS; 10.07.2014
comment
Если вы используете gradle, вам не нужно включать библиотеку, просто добавьте compile 'com.google.android.gms:play-services:+' в свои зависимости. - person JoniDS; 10.07.2014

Попробуйте этот код: -

 public void loadad(){
            this.interstitialAds = new InterstitialAd(this, "Publisher_Id");
            AdRequest adr = new AdRequest();
            // add your test device here
            //adr.addTestDevice("8E452640BC83C672B070CDCA8AB9B06B");
            interstitialAds.loadAd(adr);
            this.interstitialAds.setAdListener(new AdListener() {
                @Override
                public void onReceiveAd(Ad arg0) {
                    // TODO Auto-generated method stub
                    if (interstitialAds.isReady()) {
                        interstitialAds.show();
                    } else {

                    }

                }

                public void onLeaveApplication(Ad arg0) {
                    // TODO Auto-generated method stub

                }
                @Override
                public void onFailedToReceiveAd(Ad arg0, ErrorCode error) {
                    // TODO Auto-generated method stub
                    String message = "Load Ads Failed: (" + error + ")";

                }

                @Override
                public void onDismissScreen(Ad arg0) {
                    // TODO Auto-generated method stub

                    int DELAY = 120000;

                    Handler handler = new Handler();
                    handler.postDelayed(new Runnable() {            
                        @Override
                        public void run() {
                            // Intent intent = new Intent(Home.this, MainActivity.class);
                            // startActivity(intent);   
                            loadad();
                        }
                    }, DELAY);

                }
                @Override
                public void onPresentScreen(Ad arg0) {
                    // TODO Auto-generated method stub

                }
            });

        }

Используйте этот код и позвоните при запуске вашего приложения. И внутри onDismissScreen() есть обработчик. Если вы хотите позвонить через несколько минут..

person Laxmeena    schedule 10.07.2014
comment
Спасибо, Раджив, но этот код вызывает у меня проблемы с импортом. Я новичок в этом, поэтому извиняюсь, если сразу не разберусь. Это похоже на обходной путь. Интересно, есть ли реальное решение этой проблемы - person Ahsan; 10.07.2014
comment
@Ahsan, просто импортируйте библиотеку Google Play. какие типы ошибок вы получаете. пожалуйста отпишитесь здесь.. - person Laxmeena; 10.07.2014
comment
я разместил свой logcat... java.lang.NoClassDefFoundError: com.google.android.gms.ads.InterstitialAd - person Ahsan; 10.07.2014