应用程序在向邮件应用程序发送意图时崩溃

时间:2016-07-07 12:49:11

标签: java android android-intent

每当我的应用尝试发送意图邮寄任何邮件应用时,它都会崩溃。 有人可以帮我解决这个问题吗?

这是我的意图的xml代码:

Intent intent =  new Intent(Intent.ACTION_SENDTO);
    intent.setData(Uri.parse("mailto:"));
    intent.setType("*/*");
    intent.putExtra(Intent.EXTRA_EMAIL, "jainharshil670@yahoo.in");
    intent.putExtra(Intent.EXTRA_SUBJECT, "My Coffee Order");
    intent.putExtra(Intent.EXTRA_TEXT, priceMessage);
    startActivity(intent);

应用程序在日志文件中提供的错误消息是:

07-07 17:48:25.504 22490-22490/com.example.android.justjava E/AndroidRuntime: FATAL EXCEPTION: main
                                                                          Process: com.example.android.justjava, PID: 22490
                                                                          java.lang.IllegalStateException: Could not execute method for android:onClick
                                                                              at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:293)
                                                                              at android.view.View.performClick(View.java:4848)
                                                                              at android.view.View$PerformClick.run(View.java:20262)
                                                                              at android.os.Handler.handleCallback(Handler.java:815)
                                                                              at android.os.Handler.dispatchMessage(Handler.java:104)
                                                                              at android.os.Looper.loop(Looper.java:194)
                                                                              at android.app.ActivityThread.main(ActivityThread.java:5649)
                                                                              at java.lang.reflect.Method.invoke(Native Method)
                                                                              at java.lang.reflect.Method.invoke(Method.java:372)
                                                                              at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:959)
                                                                              at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:754)
                                                                           Caused by: java.lang.reflect.InvocationTargetException
                                                                              at java.lang.reflect.Method.invoke(Native Method)
                                                                              at java.lang.reflect.Method.invoke(Method.java:372)
                                                                              at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288)
                                                                              at android.view.View.performClick(View.java:4848) 
                                                                              at android.view.View$PerformClick.run(View.java:20262) 
                                                                              at android.os.Handler.handleCallback(Handler.java:815) 
                                                                              at android.os.Handler.dispatchMessage(Handler.java:104) 
                                                                              at android.os.Looper.loop(Looper.java:194) 
                                                                              at android.app.ActivityThread.main(ActivityThread.java:5649) 
                                                                              at java.lang.reflect.Method.invoke(Native Method) 
                                                                              at java.lang.reflect.Method.invoke(Method.java:372) 
                                                                              at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:959) 
                                                                              at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:754) 
                                                                           Caused by: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.SENDTO typ=*/* (has extras) }
                                                                              at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1792)
                                                                              at android.app.Instrumentation.execStartActivity(Instrumentation.java:1512)
                                                                              at android.app.Activity.startActivityForResult(Activity.java:3810)
                                                                              at android.support.v4.app.BaseFragmentActivityJB.startActivityForResult(BaseFragmentActivityJB.java:48)
                                                                              at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:75)
                                                                              at android.app.Activity.startActivityForResult(Activity.java:3761)
                                                                              at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:871)
                                                                              at android.app.Activity.startActivity(Activity.java:4091)
                                                                              at android.app.Activity.startActivity(Activity.java:4059)
                                                                              at com.example.android.justjava.MainActivity.submitOrder(MainActivity.java:65)
                                                                              at java.lang.reflect.Method.invoke(Native Method) 
                                                                              at java.lang.reflect.Method.invoke(Method.java:372) 
                                                                              at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288) 
                                                                              at android.view.View.performClick(View.java:4848) 
                                                                              at android.view.View$PerformClick.run(View.java:20262) 
                                                                              at android.os.Handler.handleCallback(Handler.java:815) 
                                                                              at android.os.Handler.dispatchMessage(Handler.java:104) 
                                                                              at android.os.Looper.loop(Looper.java:194) 
                                                                              at android.app.ActivityThread.main(ActivityThread.java:5649) 
                                                                              at java.lang.reflect.Method.invoke(Native Method) 
                                                                              at java.lang.reflect.Method.invoke(Method.java:372) 
                                                                              at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:959) 
                                                                              at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:754) 

4 个答案:

答案 0 :(得分:0)

以这种方式向您的清单添加活动:

  <activity   android:name=".AppPreferenceActivity" android:label="@string/app_name">  
     <intent-filter> 
       <action android:name="com.scytec.datamobile.vd.gui.android.AppPreferenceActivity" />  
         <category android:name="android.intent.category.DEFAULT" />  
     </intent-filter>   
  </activity>

答案 1 :(得分:0)

line 2:++++execSync('powershell get-netipaddress '+ip)消除了您在setType()中的价值。相反,结合:

setData()

成:

intent.setData(Uri.parse("mailto:"));
intent.setType("*/*");
intent.putExtra(Intent.EXTRA_EMAIL, "jainharshil670@yahoo.in");

(将intent.setDataAndType(Uri.parse("mailto:jainharshil670@yahoo.in"), "text/plain"); 替换为text/plain中所含内容的实际MIME类型

答案 2 :(得分:0)

这意味着android系统没有找到任何电子邮件发送活动来处理您创建的意图。确保您的设备中安装了电子邮件应用程序。

还可以使用以下代码发送电子邮件,

<% if @posts.present? %>
  <% @posts.each do |post| %>
    <%= link_to "#{post.title}", post_path(post) %>
  <% end %>
<% else %>
    <p> You don't have any post yet. Keep posting! </p>
<% end %>

答案 3 :(得分:0)

我在发布这个问题之后就知道了。

当我看到行

时,我发现了它
intent.setData(Uri.parse("mailto:"));
intent.setType("*/*");

然后我删除了: -

intent.setType("*/*");

然后一切都很好。