2015-11-04 41 views
-1

iam使用自定義ActionBar進行導航,如A - > B - > c,c - > B - > A 在應用程序導航中A - > B - > c工作正常點擊C到 - > B即可獲得運行時異常。我的logCat添加波紋管.......Android運行時間excetion:致命例外:主

.............子列表瀏覽器目錄.class ................

public class SublistBrowserCatalog extends Activity{ 
    ArrayAdapter<String> adapter; 
    private String name,title; 
    private DatabaseHelper dbHeplper; 
    private ListView lvUsers; 
    private List<JSONObject> listItem; 
    static Bundle resStr; 
    private static List<JSONObject> list_info; 
    // public String Hose_Name; 
    @SuppressLint("NewApi") 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.browse_catalog); 
     Log.v("BrowserCatalog", "BrowserCatalog"); 
     resStr = getIntent().getExtras(); 
     name = resStr.getString("bhh", null); 
     title = resStr.getString("name", null); 
     //getActionBar().setTitle(name); 
     System.out.println(".....................>>"+title); 
     ActionBar mActionBar = getActionBar(); 
     mActionBar.setDisplayShowHomeEnabled(false); 
     mActionBar.setDisplayShowTitleEnabled(false); 
     LayoutInflater mInflater = LayoutInflater.from(this); 

     View mCustomView = mInflater.inflate(R.layout.custom_actionbar, null); 
     TextView mTitleTextView = (TextView) mCustomView.findViewById(R.id.title_text); 
     mTitleTextView.setText(title); 
     ImageButton imageB = (ImageButton) mCustomView 
       .findViewById(R.id.backb); 
     imageB.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View view) { 


       Intent i = new Intent(getApplicationContext(), BrokerSubList.class); 
       i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); 
       startActivity(i); 

      } 
     }); 

     ImageButton imageButton = (ImageButton) mCustomView 
       .findViewById(R.id.imageButton); 
     imageButton.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View view) { 

       Intent i = new Intent(getApplicationContext(), MainActivity.class); 
       i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); 
       startActivity(i); 
      } 
     }); 

     mActionBar.setCustomView(mCustomView); 
     mActionBar.setDisplayShowCustomEnabled(true); 


     list_info = new ArrayList<JSONObject>(); 
     dbHeplper = new DatabaseHelper(getApplicationContext()); 
     try { 
      dbHeplper.createDataBase(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

     lvUsers = (ListView)findViewById(R.id.pr_enginslist); 
     listItem = dbHeplper.getAllData(); 

     for(int j=0;j<listItem.size();j++){ 
      try { 
       //Log.v("DDD", Boolean.toString((listItem.get(j).get("type").toString().toLowerCase().replace(" ", "")).contains(name.toLowerCase().replace(" ", "")))); 
       if(listItem.get(j).get("type").toString().toLowerCase().trim().equalsIgnoreCase(name.toLowerCase().trim())){ 
        //Log.v("DDD", listItem.get(j).get("type").toString()); 
        list_info.add(listItem.get(j)); 
       } 

      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 
     } 

     lvUsers.setAdapter(new EfficientAdapter(this)); 

    } 

    private static class EfficientAdapter extends BaseAdapter { 
     private LayoutInflater mInflater; 
     private Context context; 
     public EfficientAdapter(Context context) { 
      this.context = context; 
      mInflater = LayoutInflater.from(context); 
     } 

     public int getCount() { 
      return SublistBrowserCatalog.list_info.size(); 
     } 

     public Object getItem(int position) { 
      return position; 
     } 

     public long getItemId(int position) { 
      return position; 
     } 


     static class ViewHolder { 
      TextView text1; 
      TextView text2; 
      ImageView hoses; 
     } 

     @Override 
     public View getView(final int position, View convertView, ViewGroup arg2) { 
      ViewHolder holder; 
       if (convertView == null) { 
        convertView = mInflater.inflate(R.layout.customview_item, null); 
        holder = new ViewHolder(); 
        holder.text1 = (TextView) convertView .findViewById(R.id.pr_name); 
        holder.text2 = (TextView)convertView.findViewById(R.id.sample_text); 
        holder.hoses = (ImageView)convertView.findViewById(R.id.icon); 
        convertView.setTag(holder); 

       } else { 
        holder = (ViewHolder) convertView.getTag(); 
       } 
        try { 
         holder.text1.setText(list_info.get(position).get("product").toString()); 
         holder.text2.setText(list_info.get(position).get("name").toString()); 

         InputStream open = context.getAssets().open("Hoses_Images/"+list_info.get(position).get("i_name").toString()); 
         System.out.println(";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"+list_info.get(position).get("i_name").toString()); 
         Bitmap bitmap = BitmapFactory.decodeStream(open); 
         holder.hoses.setImageBitmap(bitmap); 
         holder.hoses.setTag(list_info.get(position)); 
        } catch (Exception e) { 
         e.printStackTrace(); 
        } 


       convertView.setOnClickListener(new OnClickListener() { 

        @Override 
        public void onClick(View v) { 
         Intent pk_web = new Intent(context, SublistParkerwebView.class); 
         pk_web.putExtra("viewObj", list_info.get(position).toString()); 
         pk_web.putExtra("bc", "Browseatalog"); 
         pk_web.putExtra("name", resStr.getString("name", null)); 
         pk_web.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); 

         context.startActivity(pk_web); 
        } 
       }); 

       return convertView; 
     } 
    } 
} 

............. SublistParkerwebView.class ..................

public class SublistParkerwebView extends Activity{ 
    JSONObject pkObj; 
    JSONObject oneJB; 
    WebView mWebView = null; 
    Button SendIt; 
    String Title,ramu,title; 
    String Hoses = "file:///android_asset/Hoses_Images/"; 
    String FilePath; 
    private String email_subject; 
    File file,newDir,files,newDirs; 

    @SuppressLint("SetJavaScriptEnabled") 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     setContentView(R.layout.pk_webview); 

     Button pk_webBt = (Button) findViewById(R.id.pk_webBt); 
     SendIt = (Button) findViewById(R.id.sendto); 
     Intent intent = getIntent(); 
     Bundle resStr = getIntent().getExtras(); 
     title = resStr.getString("name", null); 
     ramu = resStr.getString("bc", null); 

     ActionBar mActionBar = getActionBar(); 
     mActionBar.setDisplayShowHomeEnabled(false); 
     mActionBar.setDisplayShowTitleEnabled(false); 
     LayoutInflater mInflater = LayoutInflater.from(this); 

     View mCustomView = mInflater.inflate(R.layout.custom_actionbar, null); 
     TextView mTitleTextView = (TextView) mCustomView.findViewById(R.id.title_text); 
     mTitleTextView.setText(title); 

     ImageButton imageB = (ImageButton) mCustomView.findViewById(R.id.backb); 
     imageB.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View view) { 

       if (ramu.toString().equals("Browseatalog")) { 
        Toast.makeText(getApplicationContext(), "IH", Toast.LENGTH_LONG).show(); 
       Intent i = new Intent(getApplicationContext(), StampCatalog.class); 
      i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
       startActivity(i); 


       }else { 
        Toast.makeText(getApplicationContext(), "sublist", Toast.LENGTH_LONG).show(); 
       } 
      } 
     }); 




     ImageButton imageButton = (ImageButton) mCustomView 
       .findViewById(R.id.imageButton); 
     imageButton.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View view) { 

       Intent i = new Intent(getApplicationContext(), MainActivity.class); 
       i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); 
       startActivity(i); 
      } 
     }); 
     mActionBar.setCustomView(mCustomView); 
     mActionBar.setDisplayShowCustomEnabled(true); 

     try { 
      Log.v("get string from another class", intent.getStringExtra("viewObj")); 
      pkObj = new JSONObject(intent.getStringExtra("viewObj")); 
      System.out.println("pkObj =====>"+pkObj); 
      Title = pkObj.getString("name"); 
      System.out.println("Title =====>"+Title); 
      Log.d("OutPut", pkObj.getString("name")); 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 

     try { 
      pkObj = new JSONObject(intent.getStringExtra("viewObj")); 

      String string = "file:///android_asset/Hoses_Images/hyd_"+pkObj.getString("i_desc").toString(); 
      Log.v("URL =====================", string); 

      try{ 
       InputStream open = getAssets().open("Hoses_Images/hyd_"+pkObj.getString("i_desc")); 
       Bitmap bitmp = BitmapFactory.decodeStream(open); 
       String root = Environment.getExternalStorageDirectory().toString(); 
       newDirs = new File(root + "/Parker"); 
       if(!newDirs.exists()) 
        newDirs.mkdirs(); 

       String pn = "details.png"; 
       files = new File (newDirs, pn); 
       if (files.exists()) files.delete(); 
       FileOutputStream rm = new FileOutputStream(files); 

       bitmp.compress(Bitmap.CompressFormat.JPEG, 90, rm); 
       rm.flush(); 
       rm.close(); 
       bitmp.recycle(); 

      } catch (Exception e) { 
       e.printStackTrace(); 
      } 

     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 
     try { 
      if (pkObj.getString("eqpVal") != null) { 
       pk_webBt.setVisibility(ImageButton.GONE); 
      } 
     } catch (JSONException e1) { 
      e1.printStackTrace(); 
     } 
     mWebView = (WebView) findViewById(R.id.pk_webId); 
     mWebView.getSettings().setJavaScriptEnabled(true); 
     try { 
      mWebView.loadUrl(Hoses + pkObj.getString("f_name").toString()); 
      Log.d("ImagePath", Hoses + pkObj.getString("i_name").toString()); 
      FilePath = Hoses + pkObj.getString("i_name").toString(); 
      try { 

       InputStream is = getAssets().open("Hoses_Images/"+pkObj.getString("f_name")); 
       int size = is.available(); 
       byte[] buffer = new byte[size]; 
       is.read(buffer); 
       is.close(); 
       email_subject = new String(buffer); 
       InputStream open = getAssets().open("Hoses_Images/"+pkObj.getString("i_name")); 
       Bitmap bitmap = BitmapFactory.decodeStream(open); 

       String root = Environment.getExternalStorageDirectory().toString(); 
       newDir = new File(root + "/Parker"); 
       if(!newDir.exists()) 
        newDir.mkdirs(); 

       String fotoname = "Photo.png"; 
       file = new File (newDir, fotoname); 
       if (file.exists()) file.delete(); 
       FileOutputStream out = new FileOutputStream(file); 
       bitmap.compress(Bitmap.CompressFormat.JPEG, 90, out); 
       out.flush(); 
       out.close(); 
       bitmap.recycle(); 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 

     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 
     pk_webBt.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 

       Intent pk_web = new Intent(getApplicationContext(), 
         ParkerTiff.class); 
       try { 
        pk_web.putExtra("webObj", pkObj.getString("i_desc") 
          .toString()); 
       } catch (JSONException e) { 
        e.printStackTrace(); 
       } 

       startActivity(pk_web); 
      } 
     }); 

     SendIt.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       Intent emailIntent = new Intent(Intent.ACTION_SEND_MULTIPLE, Uri.fromParts("mailto","", null)); 
       emailIntent.setType("image/png"); 
       emailIntent.setClassName("com.google.android.gm", "com.google.android.gm.ComposeActivityGmail"); 
       emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Parker"); 
       emailIntent.putExtra(Intent.EXTRA_TEXT, Html.fromHtml(email_subject)); 
       emailIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); 

       ArrayList<Uri> uris = new ArrayList<Uri>(); 
       String[] filePaths = new String[] {"sdcard/Parker/Photo.png", "sdcard/Parker/details.png"}; 
       System.out.println("filePaths =====>"+filePaths); 
       for (String file : filePaths) 
       { 
        File fileIn = new File(file); 
        Uri u = Uri.fromFile(fileIn); 
        uris.add(u); 
       } 
       emailIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris); 
       startActivity(Intent.createChooser(emailIntent,"Send")); 
       try { 
        startActivity(Intent.createChooser(emailIntent, "Choose an email client from...")); 

       } catch (android.content.ActivityNotFoundException ex) { 
       } 
      } 
      }); 
} 

} 

..... ......... MY logCat ....................

11-05 01:21:52.993: V/BrowserCatalog(7529): BrowserCatalog 
11-05 01:21:52.993: D/AndroidRuntime(7529): Shutting down VM 
11-05 01:21:52.993: W/dalvikvm(7529): threadid=1: thread exiting with uncaught exception (group=0x55da4b20) 
11-05 01:21:52.993: I/Process(7529): Sending signal. PID: 7529 SIG: 9 
11-05 01:21:52.993: D/AndroidRuntime(7529): procName from cmdline: com.parker 
11-05 01:21:52.993: E/AndroidRuntime(7529): in writeCrashedAppName, pkgName :com.parker 
11-05 01:21:52.993: D/AndroidRuntime(7529): file written successfully with content: com.parker StringBuffer : ;com.parker 
11-05 01:21:52.993: E/AndroidRuntime(7529): FATAL EXCEPTION: main 
11-05 01:21:52.993: E/AndroidRuntime(7529): Process: com.parker, PID: 7529 
11-05 01:21:52.993: E/AndroidRuntime(7529): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.parker/com.parker.SublistBrowserCatalog}: java.lang.NullPointerException 
11-05 01:21:52.993: E/AndroidRuntime(7529):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195) 
11-05 01:21:52.993: E/AndroidRuntime(7529):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245) 
11-05 01:21:52.993: E/AndroidRuntime(7529):  at android.app.ActivityThread.access$800(ActivityThread.java:135) 
11-05 01:21:52.993: E/AndroidRuntime(7529):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 
11-05 01:21:52.993: E/AndroidRuntime(7529):  at android.os.Handler.dispatchMessage(Handler.java:102) 
11-05 01:21:52.993: E/AndroidRuntime(7529):  at android.os.Looper.loop(Looper.java:136) 
11-05 01:21:52.993: E/AndroidRuntime(7529):  at android.app.ActivityThread.main(ActivityThread.java:5021) 
11-05 01:21:52.993: E/AndroidRuntime(7529):  at java.lang.reflect.Method.invokeNative(Native Method) 
11-05 01:21:52.993: E/AndroidRuntime(7529):  at java.lang.reflect.Method.invoke(Method.java:515) 
11-05 01:21:52.993: E/AndroidRuntime(7529):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:827) 
11-05 01:21:52.993: E/AndroidRuntime(7529):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:643) 
11-05 01:21:52.993: E/AndroidRuntime(7529):  at dalvik.system.NativeStart.main(Native Method) 
11-05 01:21:52.993: E/AndroidRuntime(7529): Caused by: java.lang.NullPointerException 
11-05 01:21:52.993: E/AndroidRuntime(7529):  at com.parker.SublistBrowserCatalog.onCreate(SublistBrowserCatalog.java:59) 
11-05 01:21:52.993: E/AndroidRuntime(7529):  at android.app.Activity.performCreate(Activity.java:5231) 
11-05 01:21:52.993: E/AndroidRuntime(7529):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1090) 
11-05 01:21:52.993: E/AndroidRuntime(7529):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159) 
11-05 01:21:52.993: E/AndroidRuntime(7529):  ... 11 more 
+0

您在Dummy.java的第44行中引用了空對象。 – 1615903

+1

可能的[Android引起異常:java.lang.NullPointerException]的重複(http://stackoverflow.com/questions/19977856/android-caused-by -java-lang-nullpointerexception) – 1615903

回答

0

你得到這個是因爲你是getti ng com.parker.Dummy.onCreate(Dummy.java:44)處的NullPointerException。

+0

tq for replay .......... \t 我的問題修改plz幫我............ - –