Logcat是这样的..
05-25 08:57:37.636: E/AndroidRuntime(510): FATAL EXCEPTION: main
05-25 08:57:37.636: E/AndroidRuntime(510): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{sim.activity/sim.activity.SIMActivity}: java.lang.NullPointerException
05-25 08:57:37.636: E/AndroidRuntime(510):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1569)
05-25 08:57:37.636: E/AndroidRuntime(510):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
05-25 08:57:37.636: E/AndroidRuntime(510):  at android.app.ActivityThread.access$1500(ActivityThread.java:117)
05-25 08:57:37.636: E/AndroidRuntime(510):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
05-25 08:57:37.636: E/AndroidRuntime(510):  at android.os.Handler.dispatchMessage(Handler.java:99)
05-25 08:57:37.636: E/AndroidRuntime(510):  at android.os.Looper.loop(Looper.java:123)
05-25 08:57:37.636: E/AndroidRuntime(510):  at android.app.ActivityThread.main(ActivityThread.java:3683)
05-25 08:57:37.636: E/AndroidRuntime(510):  at java.lang.reflect.Method.invokeNative(Native Method)
05-25 08:57:37.636: E/AndroidRuntime(510):  at java.lang.reflect.Method.invoke(Method.java:507)
05-25 08:57:37.636: E/AndroidRuntime(510):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
05-25 08:57:37.636: E/AndroidRuntime(510):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
05-25 08:57:37.636: E/AndroidRuntime(510):  at dalvik.system.NativeStart.main(Native Method)
05-25 08:57:37.636: E/AndroidRuntime(510): Caused by: java.lang.NullPointerException
05-25 08:57:37.636: E/AndroidRuntime(510):  at android.content.ContextWrapper.getResources(ContextWrapper.java:80)
05-25 08:57:37.636: E/AndroidRuntime(510):  at android.view.View.<init>(View.java:1874)
05-25 08:57:37.636: E/AndroidRuntime(510):  at android.view.View.<init>(View.java:1921)
05-25 08:57:37.636: E/AndroidRuntime(510):  at android.view.ViewGroup.<init>(ViewGroup.java:292)
05-25 08:57:37.636: E/AndroidRuntime(510):  at android.widget.AbsoluteLayout.<init>(AbsoluteLayout.java:52)
05-25 08:57:37.636: E/AndroidRuntime(510):  at android.webkit.WebView.<init>(WebView.java:975)
05-25 08:57:37.636: E/AndroidRuntime(510):  at android.webkit.WebView.<init>(WebView.java:958)
05-25 08:57:37.636: E/AndroidRuntime(510):  at android.webkit.WebView.<init>(WebView.java:948)
05-25 08:57:37.636: E/AndroidRuntime(510):  at android.webkit.WebView.<init>(WebView.java:939)
05-25 08:57:37.636: E/AndroidRuntime(510):  at sim.activity.SIMActivity.<init>(SIMActivity.java:33)
05-25 08:57:37.636: E/AndroidRuntime(510):  at java.lang.Class.newInstanceImpl(Native Method)
05-25 08:57:37.636: E/AndroidRuntime(510):  at java.lang.Class.newInstance(Class.java:1409)
05-25 08:57:37.636: E/AndroidRuntime(510):  at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
05-25 08:57:37.636: E/AndroidRuntime(510):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1561)
05-25 08:57:37.636: E/AndroidRuntime(510):  ... 11 more
之前出现过一次..有个String忘了加null判定..但是这次我实在找不出问题了..求帮助=  =
代码还没写完..见笑=。=package sim.activity;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.TelephonyManager;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.SubMenu;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.TextView;public class SIMActivity extends Activity {
    /** Called when the activity is first created. */
    private WebView webView = new WebView(this);
    private Menu menu;
    private int group1 = 1;
    private int group2 = 2;
    private Context mContext;   
    private Notification mNotification;  
    private NotificationManager mNotificationManager;  
    private final static int NOTIFICATION_ID = 0x0001; 
    
    @Override    
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        TextView tv = (TextView)findViewById(R.id.tv1);
        
        TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);   
        
        tm.getLine1Number();
        String imei1 = tm.getDeviceId();
        tm.getSubscriberId();
        
        String imei2 ="0";
         //这里为了安全起见我删掉了我的URL=-=
        String url1 = "MyURL";
        String Format1 = getResources().getString(R.string.imeis);
        String imei = "";
        int len = imei1.length();
        if(len == 14){
        imei = String.format(Format1,imei2,imei1);
        }
        else {imei = imei1;}
        
        String urll = String.format(Format1,url1,imei);
        
        //浏览器界面
        webView.loadUrl(urll);
        webView.setWebChromeClient(new WebChromeClient() {              public void onProgressChanged(WebView view, int progress) {  
                setTitle("页面加载中,请稍候..." + progress + "%");  
                setProgress(progress * 100);  
                if (progress == 100) {  
                    setTitle(R.string.app_name);  
                }  
            }  
        });  
        webView.setWebViewClient(new WebViewClient(){       
                     public boolean shouldOverrideUrlLoading(WebView view, String url) {       
                         view.loadUrl(url);       
                         return true;       
                     }       
         });
        
         setContentView(webView,new LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,
         ViewGroup.LayoutParams.WRAP_CONTENT));
         //这里为了安全起见我删掉了我的URL=-=
         String httpUrl = "myURL";
         StringBuffer sb = new StringBuffer();
         URL urlx = null;
    try{
     urlx = new URL(httpUrl);
    }catch(MalformedURLException e){
     e.printStackTrace();
    }
    if (urlx != null){
     try{
     HttpURLConnection urlConn = 
     (HttpURLConnection) urlx.openConnection();
         urlConn.connect();
         InputStream input = urlConn.getInputStream();
         InputStreamReader inputReader = new InputStreamReader(input);
         BufferedReader reader = new BufferedReader(inputReader);
         String inputLine = null;
         while((inputLine = reader.readLine()) != null){
          sb.append(inputLine).append("\n");
         }
         reader.close();
         inputReader.close();
         input.close();
         urlConn.disconnect();
         }catch(IOException e){
          e.printStackTrace();
             }
            }else{
          Log.i("TAG","url is null");
          }          String sbstr =null;
          if (sb != null){
             
              String sbtr = sb.toString();
              int sblen = sbtr.length();
              int index=sbtr.lastIndexOf("|");
              
              sbstr=sbtr.substring(index+1,sblen);
              
              tv.setText(sbstr);
          }else{
           tv.setText("cannot get page");
          }
          
          if (sbstr != null){
           if (sbstr == "none"){
         menu.setGroupVisible(group1, false);
             menu.setGroupVisible(group2, true);
           }else{
           menu.setGroupVisible(group1, true);
             menu.setGroupVisible(group2, true);
           }
           
          }else{System.out.println("null");}         }
    
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(group2,1,1,"后退");
menu.add(group2,2,2,"前进");
        SubMenu subMenu = menu.addSubMenu(group1, 100, 100, "系统通知");        
        subMenu.add(group1, 101, 101, "接收");        
        subMenu.add(group1, 102, 102, "不接收"); 
        return true;    }

    public boolean onOptionsItemSelected(MenuItem item){
     switch (item.getItemId()){
     case 1:
     if(webView.canGoBack()){
     webView.goBack();
     return true;
     }
     break;
     case 2:
     if(webView.canGoForward()){
     webView.goForward();
     return true;
     }
     break;
     case 101:
        Intent mIntent = new Intent(mContext,SIMActivity.class);               mIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);                   PendingIntent mContentIntent =PendingIntent.getActivity(mContext,0, mIntent, 0);  
             mNotification.setLatestEventInfo(mContext, "通知", "有新的通知", mContentIntent);  
             mNotificationManager.notify(NOTIFICATION_ID, mNotification);   
     break;
     case 102:
     mNotificationManager.cancel(NOTIFICATION_ID);
     break;
         default:
          return super.onOptionsItemSelected(item);
     }
     return true;
    }
    public void setupViews(){          mContext = SIMActivity.this;  
                  mNotification = new Notification(R.drawable.ic_launcher,"new notification.",System.currentTimeMillis());          mNotification.defaults = Notification.DEFAULT_SOUND;          mNotificationManager = (NotificationManager)this.getSystemService(NOTIFICATION_SERVICE);  
 }  
}

解决方案 »

  1.   

    空指针。在AndroidManifest.xml中正确地注册了Activity吗?
      

  2.   

    5-25 08:57:37.636: E/AndroidRuntime(510): Caused by: java.lang.NullPointerException
    05-25 08:57:37.636: E/AndroidRuntime(510): at android.content.ContextWrapper.getResources(ContextWrapper.java:80)
    有一个VIew初始化的时候有问题吧
      

  3.   

    将private WebView webView = new WebView(this);改为
    private WebView webView;然后在onCreate()的这段代码setContentView(R.layout.main);后面增加
    webView = new WebView(this);
      

  4.   

    注册Activity有的啊..嗯..吾试试=  =唔..还是出错= =.Logcat实在看不懂了= =..
    05-26 03:49:43.210: E/AndroidRuntime(381): java.lang.RuntimeException: Unable to start activity ComponentInfo{sim.activity/sim.activity.SIMActivity}: java.lang.NullPointerException
    05-26 03:49:43.210: E/AndroidRuntime(381):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
    05-26 03:49:43.210: E/AndroidRuntime(381):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
    05-26 03:49:43.210: E/AndroidRuntime(381):  at android.app.ActivityThread.access$1500(ActivityThread.java:117)
    05-26 03:49:43.210: E/AndroidRuntime(381):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
    05-26 03:49:43.210: E/AndroidRuntime(381):  at android.os.Handler.dispatchMessage(Handler.java:99)
    05-26 03:49:43.210: E/AndroidRuntime(381):  at android.os.Looper.loop(Looper.java:123)
    05-26 03:49:43.210: E/AndroidRuntime(381):  at android.app.ActivityThread.main(ActivityThread.java:3683)
    05-26 03:49:43.210: E/AndroidRuntime(381):  at java.lang.reflect.Method.invokeNative(Native Method)
    05-26 03:49:43.210: E/AndroidRuntime(381):  at java.lang.reflect.Method.invoke(Method.java:507)
    05-26 03:49:43.210: E/AndroidRuntime(381):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
    05-26 03:49:43.210: E/AndroidRuntime(381):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
    05-26 03:49:43.210: E/AndroidRuntime(381):  at dalvik.system.NativeStart.main(Native Method)
    05-26 03:49:43.210: E/AndroidRuntime(381): Caused by: java.lang.NullPointerException
    05-26 03:49:43.210: E/AndroidRuntime(381):  at sim.activity.SIMActivity.onCreate(SIMActivity.java:143)
    05-26 03:49:43.210: E/AndroidRuntime(381):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
    05-26 03:49:43.210: E/AndroidRuntime(381):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
    05-26 03:49:43.210: E/AndroidRuntime(381):  ... 11 more
      

  5.   

    你这次发上的出错提示与上次不同,每次有修改或者解决了某个问题要说明一下,
    这次是SIMActivity.java:143 出错,SIMActivity.java代码重新发一下。
      

  6.   

    啊啊..我看看.
    package sim.activity;import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.net.HttpURLConnection;
    import java.net.MalformedURLException;
    import java.net.URL;
    import android.app.Activity;
    import android.app.Notification;
    import android.app.NotificationManager;
    import android.app.PendingIntent;
    import android.content.Context;
    import android.content.Intent;
    import android.os.Bundle;
    import android.telephony.TelephonyManager;
    import android.util.Log;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.SubMenu;
    import android.view.ViewGroup;
    import android.view.ViewGroup.LayoutParams;
    import android.webkit.WebChromeClient;
    import android.webkit.WebView;
    import android.webkit.WebViewClient;
    import android.widget.TextView;public class SIMActivity extends Activity {
        /** Called when the activity is first created. */
         private WebView webView;
        private Menu menu;
        private int group1 = 1;
        private int group2 = 2;
        private Context mContext;   
        private Notification mNotification;  
        private NotificationManager mNotificationManager;  
        private final static int NOTIFICATION_ID = 0x0001; 
        
        @Override    
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            webView = new WebView(this);
            setupViews();
            
            TextView tv = (TextView)findViewById(R.id.tv1);
            
            TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);   
            
            tm.getLine1Number();
            String imei1 = tm.getDeviceId();
            tm.getSubscriberId();
            
            String imei2 ="0";
            String url1 = "myURL";
            String Format1 = getResources().getString(R.string.imeis);
            String imei = "";
            int len = imei1.length();
            if(len == 14){
            imei = String.format(Format1,imei2,imei1);
            }
            else {imei = imei1;}
            
            String urll = String.format(Format1,url1,imei);
            
            //浏览器界面
            webView.loadUrl(urll);
            webView.setWebChromeClient(new WebChromeClient() {              public void onProgressChanged(WebView view, int progress) {  
                    setTitle("页面加载中,请稍候..." + progress + "%");  
                    setProgress(progress * 100);  
                    if (progress == 100) {  
                        setTitle(R.string.app_name);  
                    }  
                }  
            });  
            webView.setWebViewClient(new WebViewClient(){       
                         public boolean shouldOverrideUrlLoading(WebView view, String url) {       
                             view.loadUrl(url);       
                             return true;       
                         }       
             });
            
             setContentView(webView,new LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,
             ViewGroup.LayoutParams.WRAP_CONTENT));
             
             String httpUrl = "myURL";
             StringBuffer sb = new StringBuffer();
             URL urlx = null;
        try{
         urlx = new URL(httpUrl);
        }catch(MalformedURLException e){
         e.printStackTrace();
        }
        if (urlx != null){
         try{
         HttpURLConnection urlConn = 
         (HttpURLConnection) urlx.openConnection();
             urlConn.connect();
             InputStream input = urlConn.getInputStream();
             InputStreamReader inputReader = new InputStreamReader(input);
             BufferedReader reader = new BufferedReader(inputReader);
             String inputLine = null;
             while((inputLine = reader.readLine()) != null){
              sb.append(inputLine).append("\n");
             }
             reader.close();
             inputReader.close();
             input.close();
             urlConn.disconnect();
             }catch(IOException e){
              e.printStackTrace();
                 }
                }else{
              Log.i("TAG","url is null");
              }          String sbstr =null;
              if (sb != null){
                 
                  String sbtr = sb.toString();
                  int sblen = sbtr.length();
                  int index=sbtr.lastIndexOf("|");
                  
                  sbstr=sbtr.substring(index+1,sblen);
                  
                  tv.setText(sbstr);
              }else{
               tv.setText("cannot get page");
              }
              
              if (sbstr != null){
               if (sbstr == "none"){
             menu.setGroupVisible(group1, false);
                 menu.setGroupVisible(group2, true);
               }else{
               menu.setGroupVisible(group1, true);
                 menu.setGroupVisible(group2, true);
               }
               
              }else{System.out.println("null");}         }
        
    public boolean onCreateOptionsMenu(Menu menu) {
    menu.add(group2,1,1,"后退");
    menu.add(group2,2,2,"前进");
            SubMenu subMenu = menu.addSubMenu(group1, 100, 100, "系统通知");        
            subMenu.add(group1, 101, 101, "接收");        
            subMenu.add(group1, 102, 102, "不接收"); 
            return true;    }

        public boolean onOptionsItemSelected(MenuItem item){
         switch (item.getItemId()){
         case 1:
         if(webView.canGoBack()){
         webView.goBack();
         return true;
         }
         break;
         case 2:
         if(webView.canGoForward()){
         webView.goForward();
         return true;
         }
         break;
         case 101:
            Intent mIntent = new Intent(mContext,SIMActivity.class);               mIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);                   PendingIntent mContentIntent =PendingIntent.getActivity(mContext,0, mIntent, 0);  
                 mNotification.setLatestEventInfo(mContext, "通知", "有新的通知", mContentIntent);  
                 mNotificationManager.notify(NOTIFICATION_ID, mNotification);   
         break;
         case 102:
         mNotificationManager.cancel(NOTIFICATION_ID);
         break;
             default:
              return super.onOptionsItemSelected(item);
         }
         return true;
        }
        public void setupViews(){          mContext = SIMActivity.this;  
                      mNotification = new Notification(R.drawable.ic_launcher,"new notification.",System.currentTimeMillis());          mNotification.defaults = Notification.DEFAULT_SOUND;          mNotificationManager = (NotificationManager)this.getSystemService(NOTIFICATION_SERVICE);  
     }  
    }
      

  7.   

    你只定义了menu对象,没有初始,空的对Menu的使用最好在onCreateOptionsMenu、onOptionsItemSelected、onPrepareOptionsMenu里面用。
      

  8.   

    判断哪个菜单应该显示的语句要放在
    onPrepareOptionsMenu里面
      

  9.   

    能否冒昧问下如何设定..我在onPrepareOptionsMenu里面弄了if-else判断如果是"none"则menu.setGroupVisible(group1,false);但是运行之后还是能显示...