2

Following the example provided here: https://developers.google.com/gmail/api/v1/reference/users/messages/send#examples

email.setText() throws a NoClassDefFoundException: Process: com.slickapp.www.slicklikeapp, PID: 19125

java.lang.RuntimeException: An error occurred while executing doInBackground()
                                                                                   at android.os.AsyncTask$3.done(AsyncTask.java:309)
                                                                                   at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354)
                                                                                   at java.util.concurrent.FutureTask.setException(FutureTask.java:223)
                                                                                   at java.util.concurrent.FutureTask.run(FutureTask.java:242)
                                                                                   at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
                                                                                   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
                                                                                   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
                                                                                   at java.lang.Thread.run(Thread.java:818)
                                                                                Caused by: java.lang.NoClassDefFoundError: javax.activation.DataHandler
                                                                                   at javax.mail.internet.MimeMessage.setContent(MimeMessage.java:1428)
                                                                                   at javax.mail.internet.MimeBodyPart.setText(MimeBodyPart.java:1029)
                                                                                   at javax.mail.internet.MimeMessage.setText(MimeMessage.java:1467)
                                                                                   at javax.mail.internet.MimeMessage.setText(MimeMessage.java:1451)
                                                                                   at com.slickapp.www.slicklikeapp.ComposeEmailActivity$SendEmailTask.doInBackground(ComposeEmailActivity.java:153)
                                                                                   at com.slickapp.www.slicklikeapp.ComposeEmailActivity$SendEmailTask.doInBackground(ComposeEmailActivity.java:113)
                                                                                   at android.os.AsyncTask$2.call(AsyncTask.java:295)
                                                                                   at java.util.concurrent.FutureTask.run(FutureTask.java:237)
                                                                                   at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234) 
                                                                                   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 
                                                                                   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 
                                                                                   at java.lang.Thread.run(Thread.java:818)

Finding solutions in the following links:

java.lang.NoClassDefFoundError: javax.activation.DataHandler

java.lang.NoClassDefFoundError: javax.activation.DataHandler in android

I understand that this exception is due to android not implementing java.awt.datatransfer classes. I tried the solutions but they didnt work. When i added javax.mail 1.5.5 in gradle it shows a duplicate file copied error.

Error:Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'.
> com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/mimetypes.default
    File1: C:\Users\Taha\.gradle\caches\modules-2\files-2.1\com.sun.mail\android-activation\1.5.6\34c941857c08ff1d6af9a43a8806342883b2a8e1\android-activation-1.5.6.jar
    File2: C:\Users\Taha\.gradle\caches\modules-2\files-2.1\javax.activation\activation\1.1\e6cb541461c2834bdea3eb920f1884d1eb508b50\activation-1.1.jar

I couldnt find any solutions for this. I tried excluding excluding file in gradle packaging options, it didnt work only throwing NoClassDefFound exception again.

Any help would be appreciated.

AbbasFaisal
  • 1,428
  • 2
  • 18
  • 21

0 Answers0