メールを送信するためのアプリケーションを設計しています。すべてが設定されていますが、コードがエミュレーターの次の行に到達すると、「アプリケーションが予期せず停止しました」と表示され、ログ cat に NullPointerException が表示されます。私はまた、私が見つけた限り多くの許可を与えました。マニフェスト ファイルで指定する必要がある特定のアクセス許可と、問題を解決する方法を教えてください。
startActivity(Intent.createChooser(send, "This is the chooser title"));
送信はここでの私の意図です。
完全なログ cat msg は次のとおりです。
11-01 23:21:37.721: W/IInputConnectionWrapper(442): showStatusIcon on inactive InputConnection
11-01 23:21:39.781: I/msg(442): this is offhook
11-01 23:21:43.991: I/msg(442): this is idle
11-01 23:21:43.991: I/msgfinal(442): this is it
11-01 23:21:43.991: I/msg(442): this is from msg
11-01 23:21:43.991: I/sha(442): here
11-01 23:21:43.991: D/AndroidRuntime(442): Shutting down VM
11-01 23:21:43.991: W/dalvikvm(442): threadid=1: thread exiting with uncaught exception (group=0x40015560)
11-01 23:21:43.991: E/AndroidRuntime(442): FATAL EXCEPTION: main
11-01 23:21:43.991: E/AndroidRuntime(442): java.lang.NullPointerException
11-01 23:21:43.991: E/AndroidRuntime(442): at android.app.Activity.startActivityForResult(Activity.java:2827)
11-01 23:21:43.991: E/AndroidRuntime(442): at android.app.Activity.startActivity(Activity.java:2933)
11-01 23:21:43.991: E/AndroidRuntime(442): at com.example.dialing.MainActivity.fun(MainActivity.java:33)
11-01 23:21:43.991: E/AndroidRuntime(442): at com.example.dialing.PhoneCallListener.onCallStateChanged(MainActivity.java:104)
11-01 23:21:43.991: E/AndroidRuntime(442): at android.telephony.PhoneStateListener$2.handleMessage(PhoneStateListener.java:319)
11-01 23:21:43.991: E/AndroidRuntime(442): at android.os.Handler.dispatchMessage(Handler.java:99)
11-01 23:21:43.991: E/AndroidRuntime(442): at android.os.Looper.loop(Looper.java:123)
11-01 23:21:43.991: E/AndroidRuntime(442): at android.app.ActivityThread.main(ActivityThread.java:3683)
11-01 23:21:43.991: E/AndroidRuntime(442): at java.lang.reflect.Method.invokeNative(Native Method)
11-01 23:21:43.991: E/AndroidRuntime(442): at java.lang.reflect.Method.invoke(Method.java:507)
11-01 23:21:43.991: E/AndroidRuntime(442): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
11-01 23:21:43.991: E/AndroidRuntime(442): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
11-01 23:21:43.991: E/AndroidRuntime(442): at dalvik.system.NativeStart.main(Native Method)
11-01 23:21:48.481: I/Process(442): Sending signal. PID: 442 SIG: 9
「ここ」(6行目)までがLogですのでご注意ください。私がチェックのために与えたのは、startActivity
関数の直前の行です。
Intent msg=new Intent(Intent.ACTION_SEND);
String[] recipients={"myid@gmail.com"};
msg.putExtra(Intent.EXTRA_EMAIL, recipients);
msg.putExtra(Intent.EXTRA_TEXT, "This is the email body");
msg.putExtra(Intent.EXTRA_SUBJECT, "This is the email subject");
//msg.setType("message/rfc822");
msg.setType("*/*");
//context.startActivity(Intent.createChooser(msg, "This is the chooser title"));
Log.i("msg","this is from msg");
//calling into main activity
MainActivity ma=new MainActivity();
ma.fun(msg);
//この関数は mainActivity 内にあります
public void fun(Intent send)
{
Log.i("sha","here");
startActivity(Intent.createChooser(send, "This is the chooser title"));
Log.i("sha","here2");
}