ActivityNotFoundException while sending email from the application

I have written a code in which I am allowing user to send order via email to vendor [ShopOwner] along with their personal and cart item details, but here I am getting an

error: Unfortunately App has Stopped

  • Error:Execution failed for task ':ProjectName:mergeDebugResources'. > Crunching Cruncher *some file* failed, see logs
  • writing .json file and read that file in Android
  • DDMS (Android debug monitor) doesn't list processes on Galaxy S II
  • OnGlobalLayoutListener in ListView
  • Delete characters from spannable CharSequence
  • Android: Play mp3 file from raw resource on click of a TextView
  • Logcat:

    01-30 17:56:14.605: E/AndroidRuntime(951): FATAL EXCEPTION: main
    01-30 17:56:14.605: E/AndroidRuntime(951): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.SEND typ=text/html flg=0x1 (has clip) (has extras) }
    01-30 17:56:14.605: E/AndroidRuntime(951):  at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1622)
    01-30 17:56:14.605: E/AndroidRuntime(951):  at android.app.Instrumentation.execStartActivity(Instrumentation.java:1417)
    01-30 17:56:14.605: E/AndroidRuntime(951):  at android.app.Activity.startActivityForResult(Activity.java:3370)
    01-30 17:56:14.605: E/AndroidRuntime(951):  at android.app.Activity.startActivityForResult(Activity.java:3331)
    01-30 17:56:14.605: E/AndroidRuntime(951):  at android.app.Activity.startActivity(Activity.java:3566)
    01-30 17:56:14.605: E/AndroidRuntime(951):  at android.app.Activity.startActivity(Activity.java:3534)
    01-30 17:56:14.605: E/AndroidRuntime(951):  at com.version.bajrang.january.menu.ArrowsActivity$1.onClick(ArrowsActivity.java:105)
    01-30 17:56:14.605: E/AndroidRuntime(951):  at android.view.View.performClick(View.java:4202)
    01-30 17:56:14.605: E/AndroidRuntime(951):  at android.view.View$PerformClick.run(View.java:17340)
    01-30 17:56:14.605: E/AndroidRuntime(951):  at android.os.Handler.handleCallback(Handler.java:725)
    01-30 17:56:14.605: E/AndroidRuntime(951):  at android.os.Handler.dispatchMessage(Handler.java:92)
    01-30 17:56:14.605: E/AndroidRuntime(951):  at android.os.Looper.loop(Looper.java:137)
    01-30 17:56:14.605: E/AndroidRuntime(951):  at android.app.ActivityThread.main(ActivityThread.java:5039)
    01-30 17:56:14.605: E/AndroidRuntime(951):  at java.lang.reflect.Method.invokeNative(Native Method)
    01-30 17:56:14.605: E/AndroidRuntime(951):  at java.lang.reflect.Method.invoke(Method.java:511)
    01-30 17:56:14.605: E/AndroidRuntime(951):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
    01-30 17:56:14.605: E/AndroidRuntime(951):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
    01-30 17:56:14.605: E/AndroidRuntime(951):  at dalvik.system.NativeStart.main(Native Method)
    

    Code:

    Intent messageIntent = new Intent(android.content.Intent.ACTION_SEND);
    String aEmailList[] = { "rakesh@rocketmail.com" };   
    messageIntent.putExtra(android.content.Intent.EXTRA_EMAIL, aEmailList);
    messageIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject);
    messageIntent.setType("text/html");
    messageIntent.putExtra(android.content.Intent.EXTRA_TEXT, Html.fromHtml(body.toString()));
    startActivity(messageIntent);
    

    Finally with the Help of SahilMahajanMj, I have used this code with little change:

     Intent i = new Intent(Intent.ACTION_SEND);
     i.putExtra(Intent.EXTRA_EMAIL  , new String[]{"rakesh@rocketmail.com"});
     i.putExtra(Intent.EXTRA_SUBJECT, subject);
     i.setType("message/rfc822");
     i.putExtra(Intent.EXTRA_TEXT, Html.fromHtml(body.toString()));
    
    try {
        startActivity(Intent.createChooser(i, "Send email via :"));
        Toast.makeText(ArrowsActivity.this, "Email Sent.", Toast.LENGTH_SHORT).show();
    } catch (android.content.ActivityNotFoundException ex) {
        Toast.makeText(ArrowsActivity.this, "There are no email applications installed.", Toast.LENGTH_SHORT).show();
    }
    

    In ViewCartActivity.java

    public void onClick(View v) {
        // TODO Auto-generated method stub
    
            Intent mViewCartIntent = new Intent(ViewCartActivity.this, com.version.bajrang.january.menu.ArrowsActivity.class);
            mViewCartIntent.putExtra("name", myTextVeiwGrandTotal.getText().toString());
            startActivity(mViewCartIntent);
    
                }
            });
    

    In ArrowsActivity.java:

    TextView txtName = (TextView) findViewById(R.id.total);
    Intent i = getIntent();
    String name = i.getStringExtra("name");
    txtName.setText(name);
    

    I am using above code to get total number of products in cart and i am able to get and show as well, but here total number of items in cart i also want to show on cart tab like:

    https://play.google.com/store/apps/details?id=com.queppelin.tastykhana

    they have shown 2 in red…

    Related posts:

    DataBindingUtil.setContentView - Type parameter T has incompatible upper bounds
    Java class, Arraylist with multiple types
    Android SQLite - named parameters
    Dynamically Setting a Fixed Height for a Staggered Grid View
    Android-Libgdx, Calling Another Activity after the Game starts on Button click
    How to implement show and hide fragment inside fragment in android
  • Creating integer array of resource IDs
  • Android: Workaround for support.v4.app.Fragment -> Fragment classcastexception?
  • Drawing multiple lines in edittext e.g. notepad
  • Android activity go back to activity that started it instead of parent activity when pressing navigation bar back button
  • How to upload multiple android archives (one for each flavor)
  • Android Fingerprint API Encryption and Decryption
  • 4 Solutions collect form web for “ActivityNotFoundException while sending email from the application”

    The error message shows:

    ActivityNotFoundException: No Activity found to handle Intent {
    act=android.intent.action.SEND typ=text/html flg=0x1 (has clip) (has
    extras) }

    It means that the android system doesnt found any email sending activity to handle the intent created by you. Make sure you have email application installed in your device.

    Also use the following code to send email,

    Intent i = new Intent(Intent.ACTION_SEND);
    i.setType("message/rfc822");
    i.putExtra(Intent.EXTRA_EMAIL  , new String[]{"recipient@example.com"});
    i.putExtra(Intent.EXTRA_SUBJECT, "subject of email");
    i.putExtra(Intent.EXTRA_TEXT   , "body of email");
    try {
        startActivity(Intent.createChooser(i, "Send mail"));
    } catch (android.content.ActivityNotFoundException ex) {
        Toast.makeText(MyActivity.this, "There are no email applications installed.", Toast.LENGTH_SHORT).show();
    }
    

    Rakesh sorry for late reply, since 10 am i was trying to resolve your issue and i have tried several times and finally below code has worked:

    i knew you got answer, but i have given many hours for my satisfaction i am placing my answer here, and brother i don’t need points for this, because @SahilMahajanMj deserve this:

      Intent i = new Intent(Intent.ACTION_SEND);
            i.putExtra(Intent.EXTRA_EMAIL  , new String[]{"rakesh@rocketmail.com"});
            i.putExtra(Intent.EXTRA_SUBJECT, subject);
            i.setType("message/rfc822");
            i.putExtra(Intent.EXTRA_TEXT, Html.fromHtml(body.toString()));
    
            try {
                startActivity(Intent.createChooser(i, "Send email via :"));
                } catch (android.content.ActivityNotFoundException ex) {
                Toast.makeText(ArrowsActivity.this, "There are no email applications installed.", Toast.LENGTH_SHORT).show();
            }
    

    Seem problem with android.content which you passing with your putExtras .

    try something like below:

    public Intent sendMail1() {
            Intent messageIntent = new Intent(Intent.ACTION_SEND);
    
            String aEmailList[] = { "rakesh@rocketmail.com" };
            messageIntent.putExtra(Intent.EXTRA_EMAIL, aEmailList);
    
            messageIntent.putExtra(Intent.EXTRA_SUBJECT, subject);
    
            messageIntent.setType("text/html");
            messageIntent.putExtra(Intent.EXTRA_TEXT,
                    Html.fromHtml(body.toString()));
    
            return messageIntent;
        }
    

    Fire your intent like:

    startActivity(Intent.createChooser(sendMail1(), "send mail"));
    

    How to manage `startActivityForResult` on Android?

    see this link how to use the startactivity for result it willsolve your problem friend.

    Android Babe is a Google Android Fan, All about Android Phones, Android Wear, Android Dev and Android Games Apps and so on.