2013-12-09 32 views
2

我正尝试将admob集成到我的游戏中,但我在尝试展示插页式广告时收到了nullpointerexcpetion。这里是我的代码.. 里面的的onCreateAdmob Google Play服务。展示插页式广告时出现空指针异常


interstitial = new InterstitialAd(this); 
interstitial.setAdUnitId("a1528e2f9897fc5"); 

AdRequest adRequest = new AdRequest.Builder().build(); 

interstitial.loadAd(adRequest); 

我在这一行越来越错误.. interstitial.loadAd(adRequest);

,这里是我的日志

12-11 17:12:41.755: E/AndroidRuntime(9357): FATAL EXCEPTION: main 
12-11 17:12:41.755: E/AndroidRuntime(9357): java.lang.RuntimeException: Unable to start activity ComponentInfo{cr.logics.fastfood/cr.logics.fastfood.FastFood}: java.lang.NullPointerException 
12-11 17:12:41.755: E/AndroidRuntime(9357):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2100) 
12-11 17:12:41.755: E/AndroidRuntime(9357):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2125) 
12-11 17:12:41.755: E/AndroidRuntime(9357):  at android.app.ActivityThread.access$600(ActivityThread.java:140) 
12-11 17:12:41.755: E/AndroidRuntime(9357):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1227) 
12-11 17:12:41.755: E/AndroidRuntime(9357):  at android.os.Handler.dispatchMessage(Handler.java:99) 
12-11 17:12:41.755: E/AndroidRuntime(9357):  at android.os.Looper.loop(Looper.java:137) 
12-11 17:12:41.755: E/AndroidRuntime(9357):  at android.app.ActivityThread.main(ActivityThread.java:4898) 
12-11 17:12:41.755: E/AndroidRuntime(9357):  at java.lang.reflect.Method.invokeNative(Native Method) 
12-11 17:12:41.755: E/AndroidRuntime(9357):  at java.lang.reflect.Method.invoke(Method.java:511) 
12-11 17:12:41.755: E/AndroidRuntime(9357):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1006) 
12-11 17:12:41.755: E/AndroidRuntime(9357):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773) 
12-11 17:12:41.755: E/AndroidRuntime(9357):  at dalvik.system.NativeStart.main(Native Method) 
12-11 17:12:41.755: E/AndroidRuntime(9357): Caused by: java.lang.NullPointerException 
12-11 17:12:41.755: E/AndroidRuntime(9357):  at tj.a(SourceFile:191) 
12-11 17:12:41.755: E/AndroidRuntime(9357):  at tt.onTransact(SourceFile:81) 
12-11 17:12:41.755: E/AndroidRuntime(9357):  at android.os.Binder.transact(Binder.java:326) 
12-11 17:12:41.755: E/AndroidRuntime(9357):  at com.google.android.gms.internal.ac$a$a.a(Unknown Source) 
12-11 17:12:41.755: E/AndroidRuntime(9357):  at com.google.android.gms.ads.InterstitialAd.loadAd(Unknown Source) 
12-11 17:12:41.755: E/AndroidRuntime(9357):  at cr.logics.fastfood.FastFood.onCreate(FastFood.java:245) 
12-11 17:12:41.755: E/AndroidRuntime(9357):  at android.app.Activity.performCreate(Activity.java:5206) 
12-11 17:12:41.755: E/AndroidRuntime(9357):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1083) 
12-11 17:12:41.755: E/AndroidRuntime(9357):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2064) 
12-11 17:12:41.755: E/AndroidRuntime(9357):  ... 11 more 

我已将google-play-services-lib添加到我的项目中,添加将元数据编辑成清单,做了所有的谷歌指南,但我面临这个错误,(抱歉我的测试英语)。 有什么建议吗? 在此先感谢!

+0

我有完全相同的问题,你有没有设法解决它? – gysyky

+0

我得到了完全相同的错误..想知道你是否能够修复它? – infinity

+0

相同的f ******错误。 插页式广告时出现无限次崩溃 – KNU

回答

3

以下内容添加到您的项目的proguard的-project.txt,以防止它剥离了AdMob的类

-keep public class com.google.android.gms.ads.** { 
    public *; 
} 

-keep public class com.google.ads.** { 
    public *; 
} 

而且还包括以下活动清单文件

enter image description here

android:name="com.google.android.gms.ads.AdActivity" 
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" 
-1

您必须在显示前检查广告是否已加载:

if (interstitial!=null && interstitial.isLoaded()) 
{ 
    interstitial.show(); 
}