简体   繁体   English

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

[英]Console error while running the app

Console gives me the following error while am running the app. 控制台在运行应用程序时给我以下错误。 Can anyone please help me know what it means? 谁能帮我知道这意味着什么吗? The app doesn't crash, it keeps running. 该应用程序不会崩溃,它可以继续运行。

[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

While the code goes like this: 代码如下所示:

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);
    }
}

But again, it does crash if i un-comment the following request: 但是同样,如果我取消注释以下请求,它的确会崩溃:

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

The error was that the Webpage i was trying to read with 错误是我尝试阅读的网页

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

was not accepting the symbol # so i had to replace the calling Url with B instead. 不接受符号#所以我不得不用B代替调用Url。 it is a lot easier to have a commonly used symbol as an identifier, if one must use an identifier as was in my case. 如果必须像本例中那样使用标识符,那么将常用符号用作标识符要容易得多。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM