Неизвестный сбой приложения Android - PullRequest
1 голос
/ 08 июля 2011

Я пытаюсь создать почтовый клиент, при каждом запуске приложения происходит сбой с сообщением по умолчанию.Может кто-нибудь, пожалуйста, скажите мне, где я иду не так.Ниже приведены мои Java-файлы и манифест.

EmailManager.java

public class EmailManager {



    private String stmpHost = "smtp.gmail.com";
        private String mailServer = "imap.gmail.com";
        private EmailAccount account;
        private Session smtpSession; 
        private Session imapSession; 
        private Folder inbox;
        private Store store;



        public EmailManager(String username, String password, String urlServer, String stmpHost, String mailServer) {
            account = new EmailAccount(username, password, urlServer);
            this.stmpHost = stmpHost;
            this.mailServer = mailServer;
            initProtocol();
        }
        private void initProtocol() {
            EmailAuthenticator authenticator = new EmailAuthenticator(account);

            Properties props1 = new Properties();  
            props1.setProperty("mail.transport.protocol", "smtps");  
            props1.setProperty("mail.host", stmpHost);  
            props1.put("mail.smtp.auth", "true");  
            props1.put("mail.smtp.port", "465");  
            props1.put("mail.smtp.socketFactory.port", "465");  
            props1.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");  
            props1.put("mail.smtp.socketFactory.fallback", "false");  
            props1.setProperty("mail.smtp.quitwait", "false");  
            smtpSession = Session.getDefaultInstance(props1, authenticator); 

            Properties props2 = new Properties();
            props2.setProperty("mail.store.protocol", "imaps");
            props2.setProperty("mail.imaps.host", mailServer);
            props2.setProperty("mail.imaps.port", "993");
            props2.setProperty("mail.imaps.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
            props2.setProperty("mail.imaps.socketFactory.fallback", "false");
            imapSession = Session.getInstance(props2);
        }   
        public Message[] getMails() throws MessagingException {
            store = imapSession.getStore("imaps");
            store.connect(mailServer, account.username, account.password);
            inbox = store.getFolder("Inbox");
            inbox.open(Folder.READ_ONLY);
            Message[] result = inbox.getMessages();

            for (int i=0, n=result.length; i<n; i++) {
                   System.out.println(i + ": " + result[i].getFrom()[0] 
                     + "\t" + result[i].getSubject());


        }
            return result;
        }   
        public void close() {
            //Close connection 
            try {
                inbox.close(false);
                store.close();
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }       
        }
        public synchronized void sendMail(String subject, String body, String sender, String recipients) throws Exception {  
            MimeMessage message = new MimeMessage(smtpSession);
            DataHandler handler = new DataHandler(new ByteArrayDataSource(body.getBytes(), "text/plain"));  
            message.setSender(new InternetAddress(sender));  
            message.setSubject(subject);  
            message.setDataHandler(handler);  
            if (recipients.indexOf(',') > 0)  
                message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(recipients));  
            else  
                message.setRecipient(Message.RecipientType.TO, new InternetAddress(recipients));  
            Transport.send(message);  


            }
        } 

этот менеджер электронной почты вызывается из mainactivity.java для его запуска

    public class MainActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        startActivity(new Intent(MainActivity.this, EmailManager.class));
    } 

}

Ниже мойФайл манифеста Android.

 <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.mailtest.android"
      android:versionCode="1"
      android:versionName="1.0">
    <uses-sdk android:minSdkVersion="8" />
    <uses-permission
        android:name="android.permission.INTERNET" />
    <application android:icon="@drawable/icon" android:label="@string/app_name" android:debuggable="true">
        <activity android:name=".MainActivity"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".EmailManager"
                  android:label="@string/app_name" android:permission="android.permission.INTERNET">
        </activity>
        <activity android:name=".EmailAithenticator"
                  android:label="@string/app_name">
        </activity>
        <activity android:name=".EmailAccount"
                  android:label="@string/app_name">
        </activity>
        <activity android:name=".ByteArrayDataSource"
                  android:label="@string/app_name">
        </activity>

    </application>
</manifest>

Log Cat имел следующие ошибки красного цвета:

07-08 07: 03: 03.947: DEBUG / WifiService (1329): включить изапустить Wi-Fi из-за обновления Wi-FiState 07-08 07: 54: 34.047: ОШИБКА / UrlDrawable (1454): ошибка getInputStream!https://fbcdn -profile-a.akamaihd.net / hprofile-ak-snc4 / 276968_73855584817_8241940_q.jpg 07-08 07: 54: 34.047: ERROR / UrlDrawable (1454): java.net.UnknownHostException: fbcnn-profile-a.akamaihd.net 07-08 07: 54: 34.047: ОШИБКА / UrlDrawable (1454): на java.net.InetAddress.lookupHostByName (InetAddress.java:500) 07-08 07: 54: 34.047: ОШИБКА /UrlDrawable (1454): в java.net.InetAddress.getAllByNameImpl (InetAddress.java:297) 07-08 07: 54: 34.047: ОШИБКА / UrlDrawable (1454): в java.net.InetAddress.getAllByName (InetAddress.java:25) 07-08 07: 54: 34.047: ОШИБКА / UrlDrawable (1454): в org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection (DefaultClientConnectionOperator.java:136) 07-08 07: 54: 34.047: ОШИБКА / UrlDrawable(1454): at org.apache.http.impl.conn.AbstractPoolEntry.open (AbstractPoolEntry.java:164) 07-08 07: 54: 34.047: ERROR / UrlDrawable (1454): at org.apache.http.impl.conn.AbstractPooledConnAdapter.open (AbstractPooledConnAdapter.java:119) 07-08 07: 54: 34.047: ОШИБКА / UrlDrawable (1454): в org.apache.http.impl.client.DefaultRequestDirector.execute (DefaultRequestDirector.java:359) 07-08 07: 54: 34.047: ОШИБКА / UrlDrawable (1454): в org.apache.http.impl.client.AbstractHttpClient.execute (.java: 555) 07-08 07: 54: 34.047: ОШИБКА / UrlDrawable (1454): в org.apache.http.impl.client.AbstractHttpClient.execute (AbstractHttpClient.java:487) 07-08 07: 54: 34.047: ОШИБКА / UrlDrawable (1454): в org.apache.http.impl.client.AbstractHttpClient.execute (AbstractHttpClient.java:465) 07-08 07: 54: 34.047: ОШИБКА / UrlDrawable (1454): в com.htc.graphics.drawable.UrlDrawable.getInputStream (UrlDrawable.java:956) 07-08 07: 54: 34.047: ОШИБКА / UrlDrawable (1454): в com.htc.graphics.drawable.UrlDrawable.getFromRemote (UrlDrawable.java:983) 07-08 07: 54: 34.047: ОШИБКА / UrlDrawable (1454): по адресу com.htc.graphics.drawable.UrlDrawable.access $ 800 (UrlDrawable.java:71) 07-08 07: 54: 34.047: ОШИБКА / UrlDrawable (1454): at com.htc.graphics.drawable.UrlDrawable $ WorkerCallable.call (UrlDrawable.java:776) 07-08 07: 54: 34.047: ОШИБКА / UrlDrawable (1454): на com.htc.graphics.drawable.UrlDrawable $ WorkerCallable.call (UrlDrawable.java:710) 07-08 07: 54: 34.047: ОШИБКА / UrlDrawable (1454): на java.util.concurrent.FutureTask$ Sync.innerRun (FutureTask.java:306) 07-08 07: 54: 34.047: ОШИБКА / UrlDrawable (1454): на java.util.concurrent.FutureTask.run (FutureTask.java:138) 07-08 07:54: 34.047: ОШИБКА / UrlDrawable (1454): в java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1088) 07-08 07: 54: 34.047: ОШИБКА / UrlDrawable (1454): в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:581) 07-08 07: 54: 34.047: ОШИБКА / UrlDrawable (1454): в java.lang.Thread.run (Thread.java:1027) 07-08 07:54:34.057: ОШИБКА / UrlDrawable (1454): ошибка getInputStream!https://fbcdn -profile-a.akamaihd.net / hprofile-ak-snc4 / 276968_73855584817_8241940_q.jpg 07-08 07: 54: 34.057: ERROR / UrlDrawable (1454): java.net.UnknownHostException: fbcnn-profile-a.akamaihd.net 07-08 07: 54: 34.057: ОШИБКА / UrlDrawable (1454): на java.net.InetAddress.lookupHostByName (InetAddress.java:500) 07-08 07: 54: 34.057: ОШИБКА /UrlDrawable (1454): на java.net.InetAddress.getAllByNameImpl (InetAddress.java:297)07-08 07: 54: 34.057: ОШИБКА / UrlDrawable (1454): на java.net.InetAddress.getAllByName (InetAddress.java:256) 07-08 07: 54: 34.057: ОШИБКА / UrlDrawable (1454): в org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection (DefaultClientConnectionOperator.java:136) 07-08 07: 54: 34.057: ОШИБКА / UrlDrawable (1454): в org.apache.http.impl.conn.AbstractPoolEntry.open (AbstractPoolEntry.java:164) 07-08 07: 54: 34.057: ОШИБКА / UrlDrawable (1454): в org.apache.http.impl.conn.AbstractPooledConnAdapter.open (AbstractPooledConnAdapter.java:119) 07-08 07: 54: 34.057: ОШИБКА / UrlDrawable (1454): в org.apache.http.impl.client.DefaultRequestDirector.execute (DefaultRequestDirector.java:359) 07-08 07: 54: 34.057: ОШИБКА / UrlDrawable (1454): в org.apache.http.impl.client.AbstractHttpClient.execute (AbstractHttpClient.java:555) 07-08 07: 54: 34.057: ОШИБКА / UrlDrawable (1454): в org.apache.http.impl.client.AbstractHttpClient.execute (AbstractHttpClient.java:487) 07-08 07: 54: 34.057: ОШИБКА / UrlDrawable (1454): в org.apache.http.impl.client.AbstractHttpClient.execute (AbstractHttpClient.java:465) 07-08 07: 54: 34.057: ОШИБКА / UrlDrawable (1454): на com.htc.graphics.drawable.UrlDrawable.getInputStream (UrlDrawable.java:956) 07-08 07: 54: 34.057: ОШИБКА / UrlDrawable (1454): на com.htc.graphics.drawable.UrlDrawable.getFromRemote (UrlDrawable.java:984) 07-08 07: 54: 34.057: ОШИБКА / UrlDrawable (1454): на com.htc.graphics.drawable.UrlDrawable.access $ 800 (UrlDrawable.java:71) 07-08 07: 54: 34.057: ОШИБКА / UrlDrawable (1454): на com.htc.graphics.drawable.UrlDrawable $ WorkerCallable.call (UrlDrawable.java:776) 07-08 07: 54: 34.057: ОШИБКА / UrlDrawable (1454): на com.htc.graphics.drawable.UrlDrawable $ WorkerCallable.call (UrlDrawable.java:710) 07-08 07: 54: 34.057: ОШИБКА / UrlDrawable (1454): на java.util.concurrent.FutureTask $ Sync.innerRun (FutureTask.java:306) 07-08 07: 54: 34.057: ОШИБКА / UrlDrawable (1454): на java.util.concurrent.FutureTask.run (FutureTask.java:138) 07-08 07: 54: 34.057: ОШИБКА / UrlDrawable (1454): в java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1088) 07-08 07: 54: 34.057: ОШИБКА / UrlDrawable (1454): в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:581) 07-08 07: 54: 34.057: ОШИБКА / UrlDrawable (1454): на java.lang.Thread.run (Thread.java:1027) 07-08 07: 55: 32.157: WARN / ResourceType (1537): сбой при получении записи для 0x7f02027e (t = 1 e = 638) в пакете 0 (ошибка -2147483647) 07-08 07: 55: 32.157: WARN / ResourceType (1537): сбой getEntry, так как entryIndex 335 выходит за пределы типа entryCount 123 07-08 07: 55: 32.157: WARN / ResourceType (1537): сбой при получении записи для 0x7f02014f (t = 1 e = 335) в пакете 0 (ошибка -2147483647) 07-08 07: 55: 32.167: WARN / ResourceType (1537): сбой getEntry, так как entryIndex 187 превышает тип entryCount 123 07-08 07: 55: 32.167: WARN / ResourceType (1537): сбой при получении записи для 0x7f0200bb (t = 1 e = 187) в пакете 0 (ошибка -2147483647) 07-08 07: 55: 32.177: WARN / ResourceType (1537): сбой getEntry, так как entryIndex 638 выходит за рамки типа entryCount 123 07-08 07: 55: 32.177: WARN / ResourceType (1537): сбой при получении записи для 0x7f02027e (t = 1 e = 638) в пакете 0 (ошибка -2147483647) 07-08 07: 55: 32.177: WARN / ResourceType (1537): сбой getEntry, так как entryIndex 335 превышает тип entryCount 123 07-08 07: 55: 32.177: WARN / ResourceType (1537): сбой при получении записи для 0x7f02014f (t = 1 e = 335) в пакете 0 (ошибка -2147483647) 07-08 07: 55: 32.177: WARN / ResourceType (1537): сбой getEntry, так как entryIndex 187 превышает тип entryCount 123 07-08 07: 55: 32.177: WARN / ResourceType (1537): сбой при получении записи для 0x7f0200bb (t = 1 e = 187) в пакете 0 (ошибка -2147483647) 07-08 07: 55: 32.187: WARN / ResourceType (1537): сбой getEntry, так как entryIndex 638 выходит за рамки типа entryCount 123

1 Ответ

1 голос
/ 08 июля 2011

Если ваш код указан правильно, EmailManager не является активным, и вы звоните

startActivity(new Intent(MainActivity.this, EmailManager.class));

Как будто это был один. Вы действительно пытаетесь запустить другое действие или просто создаете новый класс, который будет использоваться основным действием?

Как уже упоминалось в комментариях, я предлагаю вам на самом деле дать нам исключение. Проходя (отлаживая) код - ваш друг.

...