运行应用程序时出现控制台错误

时间:2014-06-01 19:58:14

标签: android eclipse

控制台在运行应用程序时给出了以下错误。谁能帮助我知道这意味着什么?该应用程序没有崩溃,它一直在运行。

[2014-06-01 15:06:30 - ddms] Can't bind to local 8700 for debugger
[2014-06-01 15:06:57 - ddms] Can't bind to local 8700 for debugger
[2014-06-01 15:07:00 - ddms] Can't bind to local 8700 for debugger
[2014-06-01 15:07:01 - ddms] Can't bind to local 8700 for debugger
[2014-06-01 15:07:02 - ddms] Can't bind to local 8700 for debugger
[2014-06-01 15:07:03 - ddms] Can't bind to local 8700 for debugger
[2014-06-01 15:09:17 - ddms] null
java.lang.NullPointerException
    at com.android.ddmlib.Client.read(Client.java:698)
    at com.android.ddmlib.MonitorThread.processClientActivity(MonitorThread.java:311)
    at com.android.ddmlib.MonitorThread.run(MonitorThread.java:263)

[2014-06-01 15:09:17 - ddms] null
java.lang.NullPointerException
    at com.android.ddmlib.Client.read(Client.java:698)
    at com.android.ddmlib.MonitorThread.processClientActivity(MonitorThread.java:311)
    at com.android.ddmlib.MonitorThread.run(MonitorThread.java:263)

[2014-06-01 18:18:28 - ddms] Can't bind to local 9451 for debugger
[2014-06-01 18:18:29 - ddmlib] An established connection was aborted by the software in your host machine
java.io.IOException: An established connection was aborted by the software in your host machine
    at sun.nio.ch.SocketDispatcher.write0(Native Method)
    at sun.nio.ch.SocketDispatcher.write(Unknown Source)
    at sun.nio.ch.IOUtil.writeFromNativeBuffer(Unknown Source)
    at sun.nio.ch.IOUtil.write(Unknown Source)
    at sun.nio.ch.SocketChannelImpl.write(Unknown Source)
    at com.android.ddmlib.JdwpPacket.writeAndConsume(JdwpPacket.java:213)
    at com.android.ddmlib.Client.sendAndConsume(Client.java:642)
    at com.android.ddmlib.HandleHeap.sendREAQ(HandleHeap.java:348)
    at com.android.ddmlib.Client.requestAllocationStatus(Client.java:488)
    at com.android.ddmlib.DeviceMonitor.createClient(DeviceMonitor.java:835)
    at com.android.ddmlib.DeviceMonitor.openClient(DeviceMonitor.java:803)
    at com.android.ddmlib.DeviceMonitor.deviceClientMonitorLoop(DeviceMonitor.java:621)
    at com.android.ddmlib.DeviceMonitor.access$100(DeviceMonitor.java:44)
    at com.android.ddmlib.DeviceMonitor$3.run(DeviceMonitor.java:580)

[2014-06-01 18:21:51 - ddms] Can't bind to local 9704 for debugger
[2014-06-02 00:43:26 - ddms] Can't bind to local 10636 for debugger

虽然代码是这样的:

package pk.albab.SMSserver;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.StringTokenizer;

import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.graphics.Color;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.support.v7.app.ActionBarActivity;
import android.telephony.SmsManager;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;


@SuppressLint({ "CutPasteId", "SimpleDateFormat", "SdCardPath" }) public class MainActivity extends ActionBarActivity {
    /** Called when the activity is first created. */

    TextView CurrentTime, AppStartTime, SMSCheckTime, SMSstartTime, RejectedSMS, TotalSent, SMSstatus, SendingMessage;

    Handler customHandler = new Handler();
    Handler loop = new Handler();
    Handler HandIn = new Handler();

    BroadcastReceiver smsSentReceiver, smsDeliveredReceiver;
    String mphone = "", mmessage ="", mdial = "+92", mFile = "", SendingTime = "", myCheck = "_S_";
    String mcDate = "", mg = "";

    PendingIntent piSent;
    PendingIntent piDelivered;

    int x = 0;
    String[] mtake, Desc;
    int mrejected = 0;
    long msgCounter = 0;
    static long mMainDelay = 1000;
    Date d1 = null, d2 = null;

    static SimpleDateFormat mSDF = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
    String msDate = mSDF.format(new Date());
    String mCounter = "";
    public boolean check = true, MessageAvCheck = true, set = true;

    private class DownloadWebPageTask extends AsyncTask<String, Void, String> {
        @Override
        protected String doInBackground(String... urls) {
            String tile = "";
            for (String url : urls) {
                DefaultHttpClient client = new DefaultHttpClient();
                HttpGet httpGet = new HttpGet(url);
                try {
                    HttpResponse execute = client.execute(httpGet);
                    InputStream content = execute.getEntity().getContent();

                    BufferedReader buffer = new BufferedReader(
                            new InputStreamReader(content));
                    String h = "";
                    while ((h = buffer.readLine()) != null) {
                        tile += h;
                    }

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

        public void onPostExecute (String result) {
                //SMS Sending Delayer
            if (result.indexOf("#") == -1){MessageAvCheck = false;}
            else if (result.indexOf("#") >= 0)
            {
                mtake = result.split("#");
                               final Runnable run = new Runnable() { 
                               public void run() {
                                   if (x < mtake.length-1)
                                {
                                   StringTokenizer bits = new StringTokenizer(mtake[x], "$");
                                   String mNumber = bits.nextToken();
                                   mphone = bits.nextToken();
                                   mmessage = bits.nextToken();
                                   mphone = mdial.concat(mphone);
                                   SendingMessage.setText(mmessage);
                                   MessageAvCheck = true;

                                   if ((mmessage.length()) <= 160){msgCounter++;}else if ((mmessage.length()) > 160){msgCounter += ((mmessage.length()) / 155);}
                                           //Messages sent per day
                                           mCounter = String.valueOf(msgCounter);
                                        try {
                                               File write = new File("/sdcard/Albab_SMS_Server/MsgCounter.txt");
                                               OutputStreamWriter myOutWriter = new OutputStreamWriter(new FileOutputStream(write));
                                               myOutWriter.append(mCounter);
                                               myOutWriter.close();                                               
                                           } catch (Exception E) {
                                               Toast.makeText(getBaseContext(), E.getMessage(),
                                                       Toast.LENGTH_SHORT).show();
                                           }
                                        StringTokenizer dt = new StringTokenizer (msDate, " ");
                                        mFile = dt.nextToken();
                                        SendingTime = dt.nextToken();
                                        mFile = mFile.replace("/", "");
                                        SendingTime = SendingTime.replace(":", "");
                                        SendingTime = mFile.concat(SendingTime);

                                        //SMS Sending Time + SMS String itself
                                        try {
                                            FileWriter read = new FileWriter("/sdcard/Send_Db/" + "SMS_" + mFile + ".txt", true);
                                            read.append(mtake[x] + " " + SendingTime + "|");
                                            read.close();
                                            }
                                         catch (IOException e) {
                                            try {
                                                   File write = new File("/sdcard/Send_Db/" + "SMS_" + mFile + ".txt");
                                                   write.createNewFile();
                                                   OutputStreamWriter myOutWriter = new OutputStreamWriter(new FileOutputStream(write));
                                                   myOutWriter.append(mtake[x] + " " + SendingTime + "|");
                                                   myOutWriter.close();
                                               } catch (Exception E) {
                                                   Toast.makeText(getBaseContext(), E.getMessage(),
                                                           Toast.LENGTH_SHORT).show();
                                               }
                                         }
                                      //Sends SMS
                                        //SmsManager sms = SmsManager.getDefault();
                                        //sms.sendTextMessage(mphone, null, mmessage, piSent, piDelivered);

                                    //Sent Or Rejected Record
                                        try {
                                            FileWriter read = new FileWriter("/sdcard/Send_Db/" + mFile + ".txt", true);
                                            read.append(mNumber + myCheck + SendingTime + "|");
                                            read.close();
                                            }
                                      catch (IOException e) {
                                            try {
                                                File write = new File("/sdcard/Send_Db/" + mFile + ".txt");
                                                write.createNewFile();
                                                OutputStreamWriter myOutWriter = new OutputStreamWriter(new FileOutputStream(write));
                                                myOutWriter.append(mNumber + myCheck + SendingTime + "|");
                                                myOutWriter.close();
                                            } catch (Exception E) {
                                                Toast.makeText(getBaseContext(), E.getMessage(),
                                                        Toast.LENGTH_SHORT).show();
                                            }
                                        }
                                        mg += mNumber + myCheck + SendingTime + "|";
                                        }
                                        else if (x == mtake.length-1)
                                        {
                                            MessageAvCheck = false;
                                            if (mg != null)
                                            {
                                                String SendPage ="http://albab.pk/albab_edu/digital/androidsms.aspx?GetValue=mashal1&myValue=";
                                                SendPage = SendPage.concat(mg);
                                                mg = "";
                                                //SentSMS task = new SentSMS();
                                                //task.execute(new String[] {SendPage});
                                                SMSstatus.setText(SendPage);
                                            }
                                        }
                                   loop.postDelayed(this, 20000);
                                        if (x == mtake.length)
                                        {
                                            loop.removeCallbacks(this);
                                            customHandler.postDelayed(finalizer, 1000);
                                        }
                                   x++;
                               }
                               };
                                    if (x == 0){loop.postDelayed(run, 0);}
                }
        }
    }

    public void DelayReset(View view){
        mMainDelay = 1000;
        SMSCheckTime.setText("");
        SMSstatus.setText("");
        SMSstatus.setTextColor(Color.BLACK);
        CurrentTime.setTextColor(Color.BLACK);
        customHandler.postDelayed(finalizer, 0);
    }

    private class SentSMS extends AsyncTask<String, Void, String> {
        @Override
        protected String doInBackground(String... urls) {
            String tile = "";
            for (String url : urls) {
                DefaultHttpClient client = new DefaultHttpClient();
                HttpGet httpGet = new HttpGet(url);
                try {
                    HttpResponse execute = client.execute(httpGet);
                    InputStream content = execute.getEntity().getContent();

                    BufferedReader buffer = new BufferedReader(
                            new InputStreamReader(content));
                    String h = "";
                    while ((h = buffer.readLine()) != null) {
                        tile += h;
                    }

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

        public void onPostExecute (String result) {
            SendingMessage.setText(result);
        }
    }

        @SuppressLint({ "SdCardPath", "SimpleDateFormat" }) @Override

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.fragment_main);

        piSent = PendingIntent.getBroadcast(this, 0, new Intent("SMS_SENT"), 0);
        piDelivered = PendingIntent.getBroadcast(this, 0, new Intent("SMS_DELIVERED"), 0);
        CurrentTime = (TextView) findViewById(R.id.CurrentTime);
        AppStartTime = (TextView) findViewById(R.id.AppStartTime);
        SMSCheckTime = (TextView) findViewById(R.id.SMSCheckTime);
        SMSstartTime = (TextView) findViewById(R.id.SMSstartTime);
        RejectedSMS = (TextView) findViewById(R.id.RejectedSMS);
        TotalSent = (TextView) findViewById(R.id.TotalSent);
        SMSstatus = (TextView) findViewById(R.id.SMSstatus);
        SendingMessage = (TextView) findViewById(R.id.SendingMessage);

       // TelephonyManager  tm=(TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
     //   String IMEINumber=tm.getDeviceId();
        //txt.setText(IMEINumber);

        //Starting time File Check or Create
            try {
                File read = new File("/sdcard/Albab_SMS_Server/StartTime.txt");
              BufferedReader buffer = new BufferedReader(new FileReader(read));
              String s = "";
              while ((s = buffer.readLine()) != null) {mcDate += s;}
              buffer.close();
                }
          catch (IOException e) {
                try {
                    File write = new File("/sdcard/Albab_SMS_Server/StartTime.txt");
                    write.createNewFile();
                    OutputStreamWriter myOutWriter = new OutputStreamWriter(new FileOutputStream(write));
                    myOutWriter.append(msDate);
                    myOutWriter.close();
                    mcDate = msDate;
                } catch (Exception E) {
                    Toast.makeText(getBaseContext(), E.getMessage(),
                            Toast.LENGTH_SHORT).show();
                }
          }

        // Total number of SMS File Check or Create
            try {
                File read = new File("/sdcard/Albab_SMS_Server/MsgCounter.txt");
              BufferedReader buffer = new BufferedReader(new FileReader(read));
              String s = "";
              while ((s = buffer.readLine()) != null) {mCounter += s;}
              buffer.close();
              msgCounter = Integer.parseInt(mCounter);
                }
          catch (IOException e) {
                try {
                    File write = new File("/sdcard/Albab_SMS_Server/MsgCounter.txt");
                    write.createNewFile();
                    OutputStreamWriter myOutWriter = new OutputStreamWriter(new FileOutputStream(write));
                    myOutWriter.append(mCounter = "0");
                    myOutWriter.close();
                } catch (Exception E) {
                    Toast.makeText(getBaseContext(), E.getMessage(),
                            Toast.LENGTH_SHORT).show();
                }
          }
        //String conversion to Date
            try {d1 = mSDF.parse(mcDate);} catch (ParseException e) {e.printStackTrace();}
            AppStartTime.setText("App Start Time: " + msDate);
        //Keeps the App Running
            customHandler.postDelayed(finalizer, 0);
        }

        private Runnable finalizer = new Runnable()
        {
                public void run()
                {                   
                    try {d2 = mSDF.parse(msDate);} catch (ParseException e) {e.printStackTrace();}
                    HandIn.postDelayed(new Runnable(){
                        public void run(){
                            msDate = mSDF.format(new Date());
                            CurrentTime.setText("Current Time: " + msDate);
                            HandIn.postDelayed(this, 1000);
                        }
                    }, 1000);
                    if (d2.getTime() - d1.getTime() >= 1000*60*60*24)
                    {
                        try {
                            File write = new File("/sdcard/Albab_SMS_Server/StartTime.txt");
                            OutputStreamWriter myOutWriter = new OutputStreamWriter(new FileOutputStream(write));
                            myOutWriter.write(msDate);
                            myOutWriter.close();
                            try {d1 = mSDF.parse(msDate);} catch (ParseException e) {e.printStackTrace();}
                            mcDate = msDate;
                            msgCounter = 0;
                            check = true;
                            mCounter = String.valueOf(msgCounter);
                        } catch (Exception E) {
                            Toast.makeText(getBaseContext(), E.getMessage(),
                                    Toast.LENGTH_SHORT).show();
                        }
                    }else
                    {
                        if (msgCounter >= 1611){Toast.makeText(getBaseContext(), "Waiting for Next Instant...", Toast.LENGTH_SHORT).show();check=false;}
                        else{check=true;}
                    }

                    if (MessageAvCheck == false)
                    {
                        mMainDelay = (mMainDelay*2);
                        SMSCheckTime.setTextColor(Color.BLUE);CurrentTime.setTextColor(Color.RED);
                        SMSCheckTime.setText("SMS Check Time: " + getDate(d2.getTime()+mMainDelay));
                        SMSstatus.setText("No SMS");
                    }
                    else if (MessageAvCheck == true && check == true){mMainDelay = 1000; SMSCheckTime.setText(""); CurrentTime.setTextColor(Color.BLACK);}
                    if (mMainDelay >= 600000){mMainDelay = 600000;}

                    SMSstartTime.setText("SMS Start Time: " + mcDate);
                    RejectedSMS.setText(String.valueOf("Rejected SMS: " + mrejected));
                    TotalSent.setText("Total SMS Sent Today: " + mCounter);
                    customHandler.postDelayed(this, mMainDelay);
                    if (mrejected >= 20){SMSstatus.setText("SMS Status: 20 or More SMS rejected"); customHandler.removeCallbacks(finalizer);}
                    if (check == true)
                    {
                        x = 0;
                        DownloadWebPageTask task = new DownloadWebPageTask();
                        if (set == true)
                            {task.execute(new String[] {"http://albab.pk/albab_edu/digital/androidsms.aspx?myManName=mashal1&SortOrder="}); set = false;}
                        else if (set == false)
                            {task.execute(new String[] {"http://albab.pk/albab_edu/digital/androidsms.aspx?myManName=mashal1&SortOrder=Desc"}); set = true;}
                        if (MessageAvCheck == true)
                        {customHandler.removeCallbacks(finalizer);}
                    }
                }
        };

    private String getDate(long time) {
        Calendar cal = Calendar.getInstance();
        cal.setTimeInMillis(time);
        String date = mSDF.format(cal.getTime()).toString();
        return date;
    }

    public void onResume() {
        super.onResume();
        smsSentReceiver=new BroadcastReceiver() {
            @Override
            public void onReceive(Context arg0, Intent arg1) {
                switch (getResultCode()) {
                case Activity.RESULT_OK:
                {
                    Toast.makeText(getBaseContext(), "SMS has been sent", Toast.LENGTH_SHORT).show();
                    myCheck = "_S_";
                    break;
                }
                case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
                {
                        Toast.makeText(getBaseContext(), "Generic Failure", Toast.LENGTH_SHORT).show();

                        if (myCheck == "_S_")
                            myCheck = "_R_";
                        else if (myCheck == "_R_")
                            mrejected++;

                    break;
                }
                case SmsManager.RESULT_ERROR_NO_SERVICE:
                {
                    Toast.makeText(getBaseContext(), "No Service", Toast.LENGTH_SHORT).show();

                    if (myCheck == "_S_")
                        myCheck = "_R_";
                    else if (myCheck == "_R_")
                        mrejected++;

                    break;
                }
                case SmsManager.RESULT_ERROR_NULL_PDU:
                {
                    Toast.makeText(getBaseContext(), "Null PDU", Toast.LENGTH_SHORT).show();

                    if (myCheck == "_S_")
                        myCheck = "_R_";
                    else if (myCheck == "_R_")
                        mrejected++;

                    break;
                }
                case SmsManager.RESULT_ERROR_RADIO_OFF:
                {
                    Toast.makeText(getBaseContext(), "Radio Off", Toast.LENGTH_SHORT).show();

                    if (myCheck == "_S_")
                        myCheck = "_R_";
                    else if (myCheck == "_R_")
                        mrejected++;

                    break;
                }
                default:
                    break;
                }
            }
        };
        smsDeliveredReceiver=new BroadcastReceiver() {
            @Override
            public void onReceive(Context arg0, Intent arg1) {
                // TODO Auto-generated method stub
                switch(getResultCode()) {
                case Activity.RESULT_OK:
                    Toast.makeText(getBaseContext(), "SMS Delivered", Toast.LENGTH_SHORT).show();
                    break;
                case Activity.RESULT_CANCELED:
                    Toast.makeText(getBaseContext(), "SMS not Delivered", Toast.LENGTH_SHORT).show();
                    break;
                }
            }
        };
        registerReceiver(smsSentReceiver, new IntentFilter("SMS_SENT"));
        registerReceiver(smsDeliveredReceiver, new IntentFilter("SMS_DELIVERED"));
    }

    public void onPause() {
        super.onPause();
        unregisterReceiver(smsSentReceiver);
        unregisterReceiver(smsDeliveredReceiver);
    }
}

但是,如果我取消对以下请求的评论,它确实会崩溃:

SentSMS task = new SentSMS();
task.execute(new String[] {SendPage});

1 个答案:

答案 0 :(得分:0)

错误是我试图用

阅读的网页
SentSMS task = new SentSMS();
task.execute(new String[] {SendPage});

未接受符号#,因此我不得不用B替换调用的Url。如果一个人必须使用我的情况下的标识符,那么将常用符号作为标识符要容易得多。