我有一个受保护的布尔如下如果事情= FALSE显示广告
protected boolean isKeyInstalled(Context context) {
// the packagename of the 'key' app
String proPackage = "com.funhouse.mytimmieskey";
// get the package manager
final PackageManager pm = context.getPackageManager();
// get a list of installed packages
List<PackageInfo> list = pm.getInstalledPackages(PackageManager.GET_DISABLED_COMPONENTS);
// let's iterate through the list
Iterator<PackageInfo> i = list.iterator();
while(i.hasNext()) {
PackageInfo p = i.next();
// check if proPackage is in the list AND whether that package is signed
// with the same signature as THIS package
if((p.packageName.equals(proPackage)) &&
(pm.checkSignatures(context.getPackageName(), p.packageName) == PackageManager.SIGNATURE_MATCH))
return true;
}
return false;
}
我试图得到它显示广告是否虚假
if(isKeyInstalled(null) != false){
//AdMob Banner
LinearLayout parent = (LinearLayout) findViewById(R.id.adveiw);
AdView ad = new AdView(this, AdSize.BANNER, "a14db2c31f42ef0");
parent.addView(ad);
AdRequest r = new AdRequest();
r.setTesting(false);
ad.loadAd(r);
}
我没有代码中的错误,但这样下去兑现我的应用程序。
这里是logcat的
05-11 00:18:37.253: INFO/ActivityManager(52): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.funhouse.mytimmies/.TimsMain bnds=[125,410][235,528] }
05-11 00:18:37.433: INFO/ActivityManager(52): Start proc com.funhouse.mytimmies for activity com.funhouse.mytimmies/.TimsMain: pid=1225 uid=10030 gids={3003}
05-11 00:18:37.814: DEBUG/ddm-heap(1225): Got feature list request
05-11 00:18:38.944: DEBUG/AndroidRuntime(1225): Shutting down VM
05-11 00:18:38.964: WARN/dalvikvm(1225): threadid=3: thread exiting with uncaught exception (group=0x4001b188)
05-11 00:18:38.974: ERROR/AndroidRuntime(1225): Uncaught handler: thread main exiting due to uncaught exception
05-11 00:18:39.044: ERROR/AndroidRuntime(1225): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.funhouse.mytimmies/com.funhouse.mytimmies.TimsMain}: java.lang.NullPointerException
05-11 00:18:39.044: ERROR/AndroidRuntime(1225): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2496)
05-11 00:18:39.044: ERROR/AndroidRuntime(1225): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
05-11 00:18:39.044: ERROR/AndroidRuntime(1225): at android.app.ActivityThread.access$2200(ActivityThread.java:119)
05-11 00:18:39.044: ERROR/AndroidRuntime(1225): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863)
05-11 00:18:39.044: ERROR/AndroidRuntime(1225): at android.os.Handler.dispatchMessage(Handler.java:99)
05-11 00:18:39.044: ERROR/AndroidRuntime(1225): at android.os.Looper.loop(Looper.java:123)
05-11 00:18:39.044: ERROR/AndroidRuntime(1225): at android.app.ActivityThread.main(ActivityThread.java:4363)
05-11 00:18:39.044: ERROR/AndroidRuntime(1225): at java.lang.reflect.Method.invokeNative(Native Method)
05-11 00:18:39.044: ERROR/AndroidRuntime(1225): at java.lang.reflect.Method.invoke(Method.java:521)
05-11 00:18:39.044: ERROR/AndroidRuntime(1225): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
05-11 00:18:39.044: ERROR/AndroidRuntime(1225): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
05-11 00:18:39.044: ERROR/AndroidRuntime(1225): at dalvik.system.NativeStart.main(Native Method)
05-11 00:18:39.044: ERROR/AndroidRuntime(1225): Caused by: java.lang.NullPointerException
05-11 00:18:39.044: ERROR/AndroidRuntime(1225): at com.funhouse.mytimmies.TimsMain.isKeyInstalled(TimsMain.java:76)
05-11 00:18:39.044: ERROR/AndroidRuntime(1225): at com.funhouse.mytimmies.TimsMain.onCreate(TimsMain.java:27)
05-11 00:18:39.044: ERROR/AndroidRuntime(1225): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
05-11 00:18:39.044: ERROR/AndroidRuntime(1225): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459)
05-11 00:18:39.044: ERROR/AndroidRuntime(1225): ... 11 more
05-11 00:18:39.095: INFO/Process(52): Sending signal. PID: 1225 SIG: 3
请向我们展示堆栈跟踪。 – Haphazard 2011-05-10 23:51:24
你正在向你的'isKeyInstalled'传递一个null,并且你从那个方法中得到一个NullPointerException。它甚至会告诉你哪一行正在抛出NullPointerException。尝试追踪通过代码传入的空值,并查看它发生的位置。提示:如果你试图调用一个空的变量的方法,你会得到一个NullPointerException。 – 2011-05-11 00:43:37
我建议学习调试。 NPE很容易找到... – WarrenFaith 2011-05-11 00:51:04