電子メールクライアントを作成しようとしていますが、アプリケーションを実行しようとすると、デフォルトのメッセージでクラッシュします。私が間違っている場所を教えてください。以下は私のJavaファイルとマニフェストです。このメールマネージャーは、以下のAndroid Unknown Application Crash
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));
}
}
それを実行するためにmainactivity.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);
}
}
は私の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>
ログイン猫は赤で、次のエラーでした:
07-08:07:03:03.947:DEBUG/WifiService(1329):原因updateWifiState 07-08に無線LANを有効にして開始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:fbcdn-profile-a.akamaihd.net 07-08 07:54:34.047:エラー/ UrlDrawable(1454): (InetAddress.java:297) 07-44:34.047:エラー/ UrlDrawable(1454):java.net.InetAddress.getAllByNameImpl(InetAddress.java:297) の07- 08 07:54:34.047:ERROR/UrlDrawable(1454):java.net.InetAddress.getAllByName(InetAddress.java:256) 07-08 07:54:34.047:ERROR/UrlDrawable(1454):org.apache .http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:136) 07-08 07:54:34.047:エラー/ UrlDrawable(1454):org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.open .java:164) 07-08 07:54:34.047:ERROR/Ur lDrawable(1454):org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119) 07-08 07:54:34.047:ERROR/UrlDrawable(1454):org.apache.http。 (AbstractRequestDirector.java:359) 07-08 07:54:34.047:ERROR/UrlDrawable(1454):org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java: 555) 07-08 07:54:34.047:ERROR/UrlDrawable(1454):org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487) 07-08 07:54:34.047: ERROR/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:ERROR/UrlD rawable(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):com.htc.graphics.drawable.UrlDrawable $ WorkerCallable.call(UrlDrawable.java:776) 07-08:54:34.047:エラー/ UrlDrawable(1454):com.htc.graphics.drawable.UrlDrawable $ WorkerCallable.call(UrlDrawable.java:710) 07-08 07:54:34.047:ERROR/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:ERROR/UrlDrawable(1454):java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecuto r.java:1088) 07-08 07:54:34.047:ERROR/UrlDrawable(1454):java.util.concurrent.ThreadPoolExecutorで$ Worker.run(ThreadPoolExecutor.java:581) 07-08 07:54: 34.047:ERROR/UrlDrawable(1454):java.lang.Thread.run(Thread.java:1027) 07-08 07:54:34057:ERROR/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:fbcdn-profile-a.akamaihd.net 07-08 07:54:34.057:エラー/ UrlDrawable(1454): (InetAddress.java:297) 07-44:34.057:エラー/ UrlDrawable(1454):java.net.InetAddress.getAllByNameImpl(InetAddress.java:297) 08 07:54:34.057:ERROR/UrlDrawable(1454):java.net.InetAddress.getAllByName(InetAddress.java:256) 07-08 07:54:34.057:ERROR/UrlDrawable(1454):org.apache .http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:136) 07-08 07:54:34.057:ERROR/UrlDrawable(1454):org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.open .java:164) 07-08 07:54:34.057:ERROR/Ur lDrawable(1454):org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119) 07-08 07:54:34.057:ERROR/UrlDrawable(1454):org.apache.http。 (AbstractHttpClient.java:AbstractRequestDirector.java:359) 07-08 07:54:34.057:エラー/ UrlDrawable(1454):org.apache.http.impl.client.AbstractHttpClient.execute 555) 07-08 07:54:34.057:ERROR/UrlDrawable(1454):org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487) 07-08 07:54:34.057: ERROR/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:ERROR/UrlD rawable(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:54:34.057:エラー/ UrlDrawable(1454):com.htc.graphics.drawable.UrlDrawable $ WorkerCallable.call(UrlDrawable.java:710) 07-08 07:54:34.057:ERROR/UrlDrawable (1454):java.util.concurrent.FutureTask $ Sync.innerRun(FutureTask.java:306) 07-08 07:54:34.057:ERROR/UrlDrawable(1454):java.util.concurrent.FutureTask.run (FutureTask.java:138) 07-08 07:54:34.057:ERROR/UrlDrawable(1454):java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecuto (ThreadPoolExecutor.java:581) 07-08 07:54:エラー:エラー: WARN/ResourceType(1537):0x7f02027e(t = 1)のエントリの取得に失敗しました。パッケージの0(エラー-2147483647)の 07-08 07:55:32.157:WARN/ResourceType(1537):entryIndex 335がentryCount 123を超えているためgetEntryが失敗する 07-08 07:55:32.157:WARNパッケージ/ 0の0x7f02014f(t = 1 e = 335)のエントリの取得に失敗しました。 07-08 07:55:32.167:WARN/ResourceType(1537):entryIndex 187が原因でgetEntryが失敗します。 entryCount 123 07-08 07:55:32.167:WARN/ResourceType(1537):eを取得できませんでしたパッケージ0の0x7f0200bb(t = 1 e = 187)のためのntry 07-08 07:55:32.177:WARN/ResourceType(1537):entryIndex 638がタイプentryCount 123を超えているためgetEntryが失敗する 07-08 07:55:32.177:WARN/ResourceType(1537):パッケージ0の0x7f02027e(t = 1 e = 638)のエントリの取得に失敗しました(エラー-2147483647) 07-08 07:55:32.177: :entryIndex 335がタイプentryCount 123を超えているために失敗しました。 07-08 07:55:32.177:WARN/ResourceType(1537):パッケージ0の0x7f02014f(t = 1 e = 335)のエントリの取得に失敗しました(エラー-2147483647) 07-08 07:55:32.177:WARN/ResourceType(1537):entryIndex 187がタイプentryCount 123を超えているため、getEntryが失敗します。 07-08 07:55:32。177:WARN/ResourceType(1537):パッケージ0の0x7f0200bb(t = 1 e = 187)のエントリの取得に失敗しました(エラー-2147483647) 07-08 07:55:32.187:WARN/ResourceType(1537):getEntryが失敗しました。上記のコードが正しい場合entryIndex 638はタイプentryCount 123
クラッシュログを見て、見た目が分かる場所はありますか? –
'adb logcat'はあなたの友人です。クラッシュの原因となった正確な行とソースファイルを指し示すスタックトレースが表示されます。 – flumpb
stacktraceを持っていると便利です... – barmaley