Android - java lang NullPointerException

时间:2014-06-25 13:27:56

标签: java android nullpointerexception

你可以帮我找一下这段代码的错误,它给了我NullPointerException错误

这是代码

if (newF.isDirectory()) {
                    System.out.println("newF.isDirectory()" + newF.isDirectory());
                    Logo = new File(newF,"client_logo.png");
                    if (Logo.isFile()) {
                        System.out.println("Logo.isFile()" + Logo.isFile());
                        // fos = new FileOutputStream(Logo);
                        Bitmap bit = BitmapFactory
                                .decodeFile("/sdcard/Track Monitor/"
                                        + MonitoringController.routname
                                        + "/" + "client_logo.png");
                        // bitmap.compress(CompressFormat.PNG, 80, fos);
                        Drawable d = new BitmapDrawable(bit);
                        setImage(d);
                    } else {
                        Thread.sleep(1500);
                        GetLogoFromSever();
                    }
                }

这是logcat:

  

06-24 16:49:16.015:E / AndroidRuntime(10651):致命异常:主要   06-24 16:49:16.015:E / AndroidRuntime(10651):java.lang.RuntimeException:无法启动活动ComponentInfo {com.starware.track_monitor / com.starware.track_monitor.view.C_ControlsScreen}:java.lang.NullPointerException   06-24 16:49:16.015:E / AndroidRuntime(10651):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651)   06-24 16:49:16.015:E / AndroidRuntime(10651):在android.app.ActivityThread.startActivityNow(ActivityThread.java:1491)   06-24 16:49:16.015:E / AndroidRuntime(10651):在android.app.LocalActivityManager.moveToState(LocalActivityManager.java:127)   06-24 16:49:16.015:E / AndroidRuntime(10651):在android.app.LocalActivityManager.startActivity(LocalActivityManager.java:339)   06-24 16:49:16.015:E / AndroidRuntime(10651):在android.widget.TabHost $ IntentContentStrategy.getContentView(TabHost.java:676)   06-24 16:49:16.015:E / AndroidRuntime(10651):在android.widget.TabHost.setCurrentTab(TabHost.java:348)   06-24 16:49:16.015:E / AndroidRuntime(10651):在android.widget.TabHost $ 2.onTabSelectionChanged(TabHost.java:141)   06-24 16:49:16.015:E / AndroidRuntime(10651):在android.widget.TabWidget $ TabClickListener.onClick(TabWidget.java:456)   06-24 16:49:16.015:E / AndroidRuntime(10651):在android.view.View.performClick(View.java:2485)   06-24 16:49:16.015:E / AndroidRuntime(10651):在android.view.View $ PerformClick.run(View.java:9080)   06-24 16:49:16.015:E / AndroidRuntime(10651):在android.os.Handler.handleCallback(Handler.java:587)   06-24 16:49:16.015:E / AndroidRuntime(10651):在android.os.Handler.dispatchMessage(Handler.java:92)   06-24 16:49:16.015:E / AndroidRuntime(10651):在android.os.Looper.loop(Looper.java:130)   06-24 16:49:16.015:E / AndroidRuntime(10651):在android.app.ActivityThread.main(ActivityThread.java:3687)   06-24 16:49:16.015:E / AndroidRuntime(10651):at java.lang.reflect.Method.invokeNative(Native Method)   06-24 16:49:16.015:E / AndroidRuntime(10651):at java.lang.reflect.Method.invoke(Method.java:507)   06-24 16:49:16.015:E / AndroidRuntime(10651):at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:867)   06-24 16:49:16.015:E / AndroidRuntime(10651):at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)   06-24 16:49:16.015:E / AndroidRuntime(10651):at dalvik.system.NativeStart.main(Native Method)   06-24 16:49:16.015:E / AndroidRuntime(10651):引起:java.lang.NullPointerException   06-24 16:49:16.015:E / AndroidRuntime(10651):at com.starware.track_monitor.view.C_ControlsScreen $ 1.run(C_ControlsScreen.java:139)   06-24 16:49:16.015:E / AndroidRuntime(10651):在android.app.Activity.runOnUiThread(Activity.java:3717)   06-24 16:49:16.015:E / AndroidRuntime(10651):at com.starware.track_monitor.view.C_ControlsScreen.onCreate(C_ControlsScreen.java:132)   06-24 16:49:16.015:E / AndroidRuntime(10651):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)   06-24 16:49:16.015:E / AndroidRuntime(10651):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615)   06-24 16:49:16.015:E / AndroidRuntime(10651):... 18更多

1 个答案:

答案 0 :(得分:0)

我看到的问题可能是你的路径名中有一个空格:

     ("/sdcard/Track Monitor/" + MonitoringController.routname+ "/" + "client_logo.png");    

部分" / sdcard / Track Monitor /"可能是错误。您应该处理此类问题并替换路径中的空格,如:

      String filePath = "/sdcard/Track Monitor/" + MonitoringController.routname+ "/" + "client_logo.png";

      String filePathWithoutBlank = filePath.replace(" ","\\ ");       

如果这不是问题,请回来向我们展示logcat ouptut以给出确切答案。

修改

您必须在manifest.xml中声明您的活动,如下所示:

       <activity
    android:name=".YourActivity"  >            
</activity>