ऐप

2014-09-22 6 views
7

पर विज्ञापन Adobob विज्ञापन लोड करने के साथ समस्याएं मैं अपने ऐप पर विज्ञापन बैनर डिस्प्ले रखने की कोशिश कर रहा हूं और मुझे कोई समस्या है। जब भी मैं गतिविधि में जाता हूं, ऐप दुर्घटनाग्रस्त हो जाता है और उस बारे में कुछ उल्लेख करता है जब मैं विज्ञापन लोड करने की कोशिश कर रहा हूं, तो यह एक शून्य संदर्भ है। मैं सकारात्मक क्यों नहीं हूं हालांकि।ऐप

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:ads="http://schemas.android.com/apk/res-auto" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:id="@+id/gameLayout"> 

    <com.google.android.gms.ads.AdView 
     android:id="@+id/bannerAd" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal" 
     ads:adSize="BANNER" 
     ads:adUnitId="MY_ADUNITID" /> 

</FrameLayout> 

यहाँ विज्ञापनों का उपयोग कर के लिए जावा कोड है:

//load ads 
AdView adView = (AdView)findViewById(R.id.bannerAd); 
AdRequest.Builder request = new AdRequest.Builder(); 
request.addTestDevice(AdRequest.DEVICE_ID_EMULATOR); 
adView.loadAd(request.build()); 

यहाँ logcat है:

09-21 21:55:39.300: E/AndroidRuntime(1168): FATAL EXCEPTION: main 
09-21 21:55:39.300: E/AndroidRuntime(1168): Process: com.project.llb, PID: 1168 
09-21 21:55:39.300: E/AndroidRuntime(1168): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.twentytwentythree.sab/com.twentytwentythree.sab.runGraphics}: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.android.gms.ads.AdView.loadAd(com.google.android.gms.ads.AdRequest)' on a null object reference 
09-21 21:55:39.300: E/AndroidRuntime(1168):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2596) 
09-21 21:55:39.300: E/AndroidRuntime(1168):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2653) 
09-21 21:55:39.300: E/AndroidRuntime(1168):  at android.app.ActivityThread.access$800(ActivityThread.java:156) 
09-21 21:55:39.300: E/AndroidRuntime(1168):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1355) 
09-21 21:55:39.300: E/AndroidRuntime(1168):  at android.os.Handler.dispatchMessage(Handler.java:102) 
09-21 21:55:39.300: E/AndroidRuntime(1168):  at android.os.Looper.loop(Looper.java:157) 
09-21 21:55:39.300: E/AndroidRuntime(1168):  at android.app.ActivityThread.main(ActivityThread.java:5872) 
09-21 21:55:39.300: E/AndroidRuntime(1168):  at java.lang.reflect.Method.invoke(Native Method) 
09-21 21:55:39.300: E/AndroidRuntime(1168):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:852) 
09-21 21:55:39.300: E/AndroidRuntime(1168):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:668) 
09-21 21:55:39.300: E/AndroidRuntime(1168): Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.android.gms.ads.AdView.loadAd(com.google.android.gms.ads.AdRequest)' on a null object reference 
09-21 21:55:39.300: E/AndroidRuntime(1168):  at com.twentytwentythree.sab.runGraphics.onCreate(runGraphics.java:94) 
09-21 21:55:39.300: E/AndroidRuntime(1168):  at android.app.Activity.performCreate(Activity.java:5312) 
09-21 21:55:39.300: E/AndroidRuntime(1168):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1111) 
09-21 21:55:39.300: E/AndroidRuntime(1168):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2552) 
09-21 21:55:39.300: E/AndroidRuntime(1168):  ... 9 more 

यहाँ है

यहाँ adview के लिए एक्सएमएल है एंड्रॉइडमेनिफेस्ट से कोड:

<meta-data android:name="com.google.android.gms.version" 
    android:value="@integer/google_play_services_version" /> 
    <activity 
     android:name="com.google.android.gms.ads.AdActivity" 
     android:configChanges="keyboard|keyboardHidden|orientation" > 
    </activity> 

अब मैं addTestDevice विधि का उपयोग कर रहा हूं क्योंकि मुझे लगता है कि मुझे यह उपयोग करने की ज़रूरत है क्योंकि मेरा ऐप अभी तक बाजार स्थान पर नहीं है। मेरे पास मेरा एडमोब खाता सेटअप है और मेरे पास बैनर सेटअप है।

यदि आपके कोई विचार हैं तो कृपया मुझे बताएं। बहुत बहुत धन्यवाद।

+0

कृपया पूरी एक्सएमएल फ़ाइल और लॉगकैट आउटपुट पोस्ट करें। –

+0

@ जूनियर बकरिज मैंने जो जोड़ा है, उसे जोड़ा। उसके लिए माफ़ करना। – sboehnke

+0

क्या आप वाकई Google Play सेवाओं के साथ किसी डिवाइस में ऐप चला रहे हैं? –

उत्तर

12

R.id.bannerAd आपके गतिविधि/टुकड़े के लिए सेट की गई सामग्री में उपलब्ध नहीं है। बुला करने से पहले:

AdView adView = (AdView)findViewById(R.id.bannerAd); 

आप

setContentView(R.layout.MyLayoutContainingBannerAd); 
+0

अब ऐसा करने के बाद मेरे पास एक बॉक्स है जो" एंड्रॉइड.कॉन्फिग में एंड्रॉइड.कॉन्फिग चेंज एंड्रॉइड मैनेजमेंट.एक्सएमएल में बदल रहा है "मेरे मैनिफेस्ट में मेरे पास है com.google.android.gms.version के साथ मेटा-डेटा टैग सेट किया गया है और गतिविधि का नाम com.google.android.gms.ads.AdActivity और configChanges कीबोर्ड पर है कीबोर्ड कीबोर्ड | अभिविन्यास। कोई समस्या नहीं है कि समस्या क्या है। – sboehnke

+0

आप अपने AndroidManifest को पोस्ट करने की आवश्यकता है, लेकिन ऐसा लगता है कि आपने AdActivity के लिए आवश्यक सभी कॉन्फ़िगरेशन परिवर्तन निर्दिष्ट नहीं किए हैं। – William

+0

मैंने अपने एंड्रॉइडमेनिफेस्ट से कोड जोड़ा। – sboehnke

1

कहा जाता है चाहिए कृपया जाँचें कि आप को शामिल किया है - संकलन 'com.google.android.gms: खेलने-सेवाओं-विज्ञापन: 8.4.0' धीरे-धीरे में

1

मुझे इसी तरह के मुद्दे का सामना करना पड़ा।

\ रेस \ लेआउट \ activity_main_lauch.xml

\ रेस \ लेआउट-V21 \ activity_main_lauch.xml

मैं एकल modifing गया था: जब मैं resourse फ़ाइल में बारीकी से जाँच की मेरी गतिविधि के लिए दो resourse फ़ाइल थे फ़ाइल, इसलिए यह त्रुटि फेंक रहा था। जब मैं दोनों फाइलों में परिवर्तन लागू करता हूं तो यह काम करना शुरू कर देता है।

0

स्वीकार्य समाधान ने मेरे लिए यह हल नहीं किया क्योंकि मेरी गतिविधि setContentView() विज्ञापन कोड से पहले है।

प्रश्न में विज्ञापन, एक खंड लेआउट में था, जिसे गतिविधि के लेआउट में डाला जा रहा था। ऐसा लगता है कि कुछ प्रकार की दौड़ की स्थिति हो रही थी, उस समय बाद में मैंने कोड कोड को सफलता के लिए जितना अधिक मौका दिया था, भले ही कोड के प्रदर्शन के साथ बहुत कुछ नहीं था।

मैंने कोड को टुकड़े के onViewCreated() में रखने के लिए सबसे संतोषजनक स्थान का निर्णय लिया, जहां यह अभी तक मुझे विफल नहीं हुआ है।

 संबंधित मुद्दे