0

Android 2.2 (Froyo) エミュレーターで正常に動作する JavaMail の次の実装があります (プロジェクトのターゲットは最新のバージョン 17 に設定されています)。Galaxy SIII 電話 (Android 4.1.1 がインストールされている) にロードすると、LogCat の指示により、アプリケーションが「キャッチ」でクラッシュします。キャッチ内のトーストも表示されません。ヒントはありますか?コードは次のとおりです。

/**
     * Send an Email with a file in attach (the file is located in SDCARD/mailattach/ directory)
     * @param emailAddress
     * @param emailObject
     * @param emailBody
     * @param attachedFile name
     */
    public static void sendEmail(String emailAddress, String emailSubject, String emailBody, String attachedFile)   {

        Email m = new Email(email_config.get("ACCOUNT_NAME"), email_config.get("ACCOUNT_PASSWORD")); 

        String[] toArr = { emailAddress };
        // Email server static initializations
        m.setHost(email_config.get("DEFAULT_SMTP_SERVER"));
        m.setPort(email_config.get("DEFAULT_SMTP_PORT"));
        if (email_config.get("SMTP_AUTHENTICATION") == "true")  {
            m.setSauth(true);
        } else {
            m.setSauth(false);
        }
        m.setSport(email_config.get("SOCKET_FACTORY_PORT"));
        if (email_config.get("DEBUG_MODE") == "true")   {
            m.setDebug(true);
        } else {
            m.setDebug(false);
        }       
        // Email transmitted parameters
        m.setTo(toArr); 
        m.setFrom(email_config.get("ACCOUNT_NAME")); 
        m.setSubject(emailSubject); 
        m.setBody(emailBody);

        String attachPath = Environment.getExternalStorageDirectory().getAbsolutePath() +
                            File.separator + "mailattach" + File.separator + attachedFile;

        try {
            // set the attachment and send
            m.addAttachment(attachPath); 
            if(m.send()) { 
                Toast.makeText(context, "Email was sent successfully.", Toast.LENGTH_LONG).show(); 
            } else { 
                Toast.makeText(context, "Email was not sent.", Toast.LENGTH_LONG).show(); 
            } 
        } catch(Exception e) { 
          Toast.makeText(context, "Error sending the email: "+e.toString(), Toast.LENGTH_LONG).show(); 
        } 
    }
4

1 に答える 1

0

Android 4 では許可されていないため、メイン スレッドではなく Networking を呼び出すようにしてください。

于 2013-01-28T20:38:38.630 に答える