【问题标题】:Sending email without user intervention in android在没有用户干预的情况下在android中发送电子邮件
【发布时间】:2011-11-01 18:46:21
【问题描述】:

不使用默认邮件应用程序,只需单击一个按钮,我想从我的应用程序发送邮件。

我点击了这个链接:

Sending Email in Android using JavaMail API without using the default/built-in app

添加了对 mainfest 文件的权限,但仍然无法正常工作。 请帮忙。

当我在我的设备上打开它时,应用程序强制关闭。

我的 logcat 文件内容如下:

08-23 15:10:26.126: ERROR/AndroidRuntime(18094): FATAL EXCEPTION: main
08-23 15:10:26.126: ERROR/AndroidRuntime(18094): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{org.mailsend/org.mailsend.MailSenderActivity.java}: java.lang.ClassNotFoundException: org.mailsend.MailSenderActivity.java in loader dalvik.system.PathClassLoader[/mnt/asec/org.mailsend-2/pkg.apk]
08-23 15:10:26.126: ERROR/AndroidRuntime(18094):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1743)
08-23 15:10:26.126: ERROR/AndroidRuntime(18094):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1851)
08-23 15:10:26.126: ERROR/AndroidRuntime(18094):     at android.app.ActivityThread.access$1500(ActivityThread.java:132)
08-23 15:10:26.126: ERROR/AndroidRuntime(18094):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1038)
08-23 15:10:26.126: ERROR/AndroidRuntime(18094):     at android.os.Handler.dispatchMessage(Handler.java:99)
08-23 15:10:26.126: ERROR/AndroidRuntime(18094):     at android.os.Looper.loop(Looper.java:143)
08-23 15:10:26.126: ERROR/AndroidRuntime(18094):     at android.app.ActivityThread.main(ActivityThread.java:4277)
08-23 15:10:26.126: ERROR/AndroidRuntime(18094):     at java.lang.reflect.Method.invokeNative(Native Method)
08-23 15:10:26.126: ERROR/AndroidRuntime(18094):     at java.lang.reflect.Method.invoke(Method.java:507)
08-23 15:10:26.126: ERROR/AndroidRuntime(18094):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
08-23 15:10:26.126: ERROR/AndroidRuntime(18094):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
08-23 15:10:26.126: ERROR/AndroidRuntime(18094):     at dalvik.system.NativeStart.main(Native Method)
08-23 15:10:26.126: ERROR/AndroidRuntime(18094): Caused by: java.lang.ClassNotFoundException: org.mailsend.MailSenderActivity.java in loader dalvik.system.PathClassLoader[/mnt/asec/org.mailsend-2/pkg.apk]
08-23 15:10:26.126: ERROR/AndroidRuntime(18094):     at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)
08-23 15:10:26.126: ERROR/AndroidRuntime(18094):     at java.lang.ClassLoader.loadClass(ClassLoader.java:551)
08-23 15:10:26.126: ERROR/AndroidRuntime(18094):     at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
08-23 15:10:26.126: ERROR/AndroidRuntime(18094):     at android.app.Instrumentation.newActivity(Instrumentation.java:1061)
08-23 15:10:26.126: ERROR/AndroidRuntime(18094):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1735)
08-23 15:10:26.126: ERROR/AndroidRuntime(18094):     ... 11 more

我使用的代码与 Sending Email in Android using JavaMail API without using the default/built-in app

这是我的主要活动:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="org.mailsend"
  android:versionCode="1"
  android:versionName="1.0"
  android:installLocation="preferExternal" >
 <uses-permission android:name="android.permission.INTERNET"></uses-permission>


<application android:icon="@drawable/icon" android:label="@string/app_name"       android:debuggable="true">
    <activity android:name=".MailSenderActivity.java"
              android:label="@string/app_name">
              <activity android:name=".GMailSender"></activity>
               <activity android:name=".MailSenderActivity"></activity>
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>

    </activity>


</application>

【问题讨论】:

  • android 能做到那个吗?它可以像您一样发送,还是只是决定将存储卡中的随机内容发送回基地?听起来有点吓人。
  • 请更具体一些,发布您的错误日志,发布不工作的代码。帮助别人帮助你
  • @user838522 LogCat 中的错误是什么?
  • 很抱歉,因为我的代表在 SO 上较少,我无法粘贴图像,所以我按原样粘贴了 logcat。
  • @Paul:Android 当然可以做到这一点。授予它互联网权限和 SD 卡权限,它将能够打开与网络服务器的连接(任何类型,包括文件或邮件),并系统地上传您的整个 SD 卡。虽然它需要至少运行一次才能启动服务,这样它就不会被 Android 关闭......

标签: android email


【解决方案1】:

您的 APK 文件中缺少 org.mailsend.MailSenderActivity 类,因此无法启动它。要么将此类添加到您的 APK 文件中,要么将清单修改为不包含它(并且不要尝试启动它)。

【讨论】:

  • 这似乎不是问题,并且 org.mailsend.MailSenderActivity 存在于类文件中。
  • @user838522:这是您的堆栈跟踪报告的问题。
  • 我有一个名为 org.mailsend 的包,其中包含两个名为 GmailSender.java 和 MailSenderActivity.java 的类,另一个名为 com.provider 的包包含 JSSEProvider.java;但为什么它不会自动将包添加到我的 apk 文件中?
  • @user838522:抱歉,我无法回答这个问题。
【解决方案2】:
  1. 检查 GMailSender.java 文件中的包名

      static {   
              Security.addProvider(new PACKED-NAME.JSSEProvider());   
             }  
    
  2. 在 JSSEProvider 文件中添加代码

    public final class JSSEProvider extends Provider {
    
        private static final long serialVersionUID = 1L;   ---> this code is add
    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-29
    • 2015-01-03
    • 2014-01-01
    • 1970-01-01
    • 2011-10-16
    • 2012-01-06
    • 1970-01-01
    相关资源
    最近更新 更多