2011-12-19 62 views
0

我有一個應用程序可以在平臺1.6的模擬器中正常工作,但是當我在平臺3.0上運行另一個avd時也是如此。它顯示了以下例外情況。android:顯示NullPointerException的大分辨率模擬器

12-19 10:24:26.372: E/AndroidRuntime(522): FATAL EXCEPTION: main 
12-19 10:24:26.372: E/AndroidRuntime(522): java.lang.NullPointerException 
12-19 10:24:26.372: E/AndroidRuntime(522): at com.example.app.DirectionsRouteFinder.doProcess(DirectionsRouteFinder.java:189) 
12-19 10:24:26.372: E/AndroidRuntime(522): at com.example.util.UrlRun.onPostExecute(UrlRun.java:49) 
12-19 10:24:26.372: E/AndroidRuntime(522): at com.example.util.UrlRun.onPostExecute(UrlRun.java:1) 
12-19 10:24:26.372: E/AndroidRuntime(522): at android.os.AsyncTask.finish(AsyncTask.java:590) 
12-19 10:24:26.372: E/AndroidRuntime(522): at android.os.AsyncTask.access$600(AsyncTask.java:149) 
12-19 10:24:26.372: E/AndroidRuntime(522): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:603) 
12-19 10:24:26.372: E/AndroidRuntime(522): at android.os.Handler.dispatchMessage(Handler.java:99) 
12-19 10:24:26.372: E/AndroidRuntime(522): at android.os.Looper.loop(Looper.java:126) 
12-19 10:24:26.372: E/AndroidRuntime(522): at android.app.ActivityThread.main(ActivityThread.java:3997) 
12-19 10:24:26.372: E/AndroidRuntime(522): at java.lang.reflect.Method.invokeNative(Native Method) 
12-19 10:24:26.372: E/AndroidRuntime(522): at java.lang.reflect.Method.invoke(Method.java:491) 
12-19 10:24:26.372: E/AndroidRuntime(522): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841) 
12-19 10:24:26.372: E/AndroidRuntime(522): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599) 
12-19 10:24:26.372: E/AndroidRuntime(522): at dalvik.system.NativeStart.main(Native Method) 

此代碼(粗體)的行顯示空指針異常。我知道,UI不應AsyncTask.I的doInBackground過程來改變我在做AsyncTask.And的onPostExecute這些改變我的3.0仿真器是非常慢,這可能是一個問題?

for (RouteVehicle item : Constants.getRouteFinder()) { 


        String alert=item.getAlert(); 
        if(!alert.equals("null")){ 
        if(alert.equals("max_speed")){ 
         maxspeed++; 
         overspeedText.setTextColor(Color.RED); 
         overlayitem.setMarker(orange); 
          } 
        else if(alert.equals("stoppage")){ 
         stopage++; 
         **stoppageText.setTextColor(Color.RED)**; 
         overlayitem.setMarker(red); 
        } 
        else if(alert.equals("geofence")){ 
         geofence++; 
         geoText.setTextColor(Color.RED); 
          overlayitem.setMarker(red); 
        } 
        else if(alert.equals("tank_empty")){ 
         tankEmpty++; 
         tankText.setTextColor(Color.RED); 
         overlayitem.setMarker(red); 
        } 
        else{ 
         sos++; 
         sosText.setTextColor(Color.RED); 
         overlayitem.setMarker(red); 
        }} 

       } 

請幫幫我!

回答

1

檢查您的佈局文件。您可能引用了不在xhdpi佈局中的元素(請參閱tankText,overlayItem等)。

+0

我還沒有創建xhdpi佈局..我認爲它應該採取正常的佈局文件默認情況下正確定義文本視圖。 – freshDroid 2011-12-19 05:53:23

+0

layout-v11?我很確定問題出現在你的一個佈局文件夾中。 – josephus 2011-12-19 06:25:39

+0

我知道它在1.6中正常運行。我在說的是,還有一些其他的佈局文件夾,其中有一個不同的佈局描述,即在1.6模擬器中加載的佈局文件夾。也許在layout-hdpi,layout-mdpi,layout-ldpi等等有衝突。這個鏈接中有一個詳細的解釋:http://developer.android.com/guide/practices/screens_support.html#qualifiers – josephus 2011-12-19 06:43:06