使用的 Android Studio 1.2
在Android 中需要使用 javaMail的jar包 mail.jar 、additionnal.jar 、 activation.jar 这三个包 。
导包方法: 直接复制 粘贴到 Module的 libs文件中,然后右击 jar包 选择 Add As Library 点击 即可。
查看 Module是否已导入包: 右击Module 点击Open Module Setting 会出现窗口 在窗口的Dependencies 中查看已导入的jar包
1、提示
java.lang.NoClassDefFoundError: javax.activation.DataHandle
错误代码
:Transport.send(mailMessage)
当时以为是jar包问题,经过排除 、百度 得出是UI线程的问题。在android4.0中访问网络不能在主程序中进行,需要 另创建一个子线程去执行 网络连接、发送邮件代码。
解决:
a、使用Thread 创建匿名内部类 在匿名内部类中 执行代码。
b、 异步线程AsyncTask。
这个错误百度了一天,使用子线程才解决。对不上号的错误真恶心
2、java.lang.SecurityException: ConnectivityService: Neither user 10096 nor current process has android.permission.ACCESS_NETWORK_STATE.
在 使用 ConnectivityManager 查看 网络状态是 出现以上错误, 原因是未设置 网络访问权限。
解决:在AndroidManifest.xml 中添加 android.permission.ACCESS_NETWORK_STATE 权限即可
3、 E/AndroidRuntime﹕ FATAL EXCEPTION: AsyncTask #3
Process: com.yezqjx.myapplication, PID: 7336
java.lang.RuntimeException: An error occured while executing doInBackground()
产生改错误的可能原因:AsyncTask对象在调用execute() 没有传递有效的数组,其中一个元素是空的。
错误代码:Object[] params = new Object[8];
当时设置的数组参数 长度为8,多设置了一个。 在改回来后再次运行 则没有出现该错误。。。
只是当我想重新 触发该错误时,把参数长度重新设置 为8 后运行,在 Logcat中竟然找不到该错误。。。。。。
4、E/ActivityThread﹕ Performing stop of activity that is not resumed: {com.miui.home/com.miui.home.launcher.Launcher}
java.lang.RuntimeException: Performing stop of activity that is not resumed: {com.miui.home/com.miui.home.launcher.Launcher}
at android.app.ActivityThread.performStopActivityInner(ActivityThread.java:3310)
at android.app.ActivityThread.handleStopActivity(ActivityThread.java:3391)
at android.app.ActivityThread.access$1100(ActivityThread.java:147)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1310)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5233)
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:904)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699)
这错误 时有时无,目测应该是 手机系统提示的错误(我用真机调试 小米2s).
com.miui.home.launcher.Launcher: 其中Launcher是 安卓系统中的桌面启动器的意思,出现这错误的原因应该是 未在手机上退出程序 又再次run 引起的
5、java.lang.SecurityException: No permission to write APN settings
at com.android.providers.telephony.TelephonyProvider.checkPermission(TelephonyProvider.java:1239)
at com.android.providers.telephony.TelephonyProvider.query(TelephonyProvider.java:821)
at android.content.ContentProvider.query(ContentProvider.java:984)
at android.content.ContentProvider$Transport.query(ContentProvider.java:213)
at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:112)
at android.os.Binder.execTransact(Binder.java:446)
这位大神的文章应该可以解决, http://blog.youkuaiyun.com/bulkin/article/details/7601609
在Android studio 工程目录中找不到 Android.mk 这个文件。。。
6、在AsyncTask 中的doInBackgroup() 方法 中 使用 该方法的参数,发现参数对象调用toString() 方法的输出结果跟预期不一样。
解决: doInBackgroup() 方法的参数其实是一个数组。。。
.