![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
文章平均质量分 52
柚子君.
这个作者很懒,什么都没留下…
展开
-
Android发送邮件报UnknownHostException: smtp.163.com错误的处理
现象说明在做邮件自动发送时,出现以下问题:在连接电脑开发调试时,邮件发送一直正常,断开调试一段时间内,邮件也能正常发送,但是过了一段时间后,发送出现异常,获取报错日志:Exception in thread "main" com.sun.mail.util.MailConnectException: Couldn't connect to host, port: smtp.163.com, 564; timeout -1; nested exception is: java.net原创 2021-05-10 23:20:17 · 3436 阅读 · 3 评论 -
禁用RadioGroup的所有RadioButton点击选中
禁用RadioGroup的所有RadioButton点击选中对于RadioGroup来说,一般控件可以使用的setEnable() ,setClickable(),setFocusable()都会失效,那么如果我们想禁用RadioGroup下的所有RadioButton都不可以点击,那么我们需要遍历RadioGroup内的所有RadioButton,单个进行禁用。代码如下: /** ...原创 2019-02-26 09:59:21 · 4946 阅读 · 0 评论 -
Objects.requireNonNull( )方法说明
1.方法介绍有时候,我们为了使得对象不为空,可以使用Objects.requireNonNull( )方法对对象进行判断。2.源代码 /* @param obj 需要检测是否为空的对象 * @param <T> 对象类型 * @return 对象不为空则返回该对象 * @throws 对象为空则报NullPointerException异常...原创 2019-02-26 09:47:33 · 44588 阅读 · 2 评论 -
android滑动监听 上下滑动 左右滑动
1.获取布局文件或视图View获取布局文件这种方式的滑动感应范围是整个布局。private void getTouchView(){ // 获取布局文件 LayoutInflater inflater = (LayoutInflater) mContext .getSystemService(Context.LAYOUT_INFLATER_SERVICE); vie...原创 2019-02-25 21:15:20 · 6778 阅读 · 0 评论 -
Cannot fit requested classes in a single dex file # methods: 66370 > 65536
问题Cannot fit requested classes in a single dex file (# methods: 66370 > 65536)原因分析主要原因是你的项目貌似有点大,已经超过65k个方法。一个dex已经装不下了,需要个多个dex,也就是multidex ,因为Android系统定义总方法数是一个short int,short int 最大值为65536。解...原创 2019-02-24 17:30:28 · 4734 阅读 · 1 评论 -
java使用BigDecimal进行货币金额计算
float和double只能用来做科学计算或者是工程计算,在商业计算中我们要用 java.math.BigDecimal。,而且使用BigDecimal类也可以进行大数的操作。方法类型描述public BigDecimal(double val)构造将double表示形式转换为BigDecimalpublic BigDecimal(int val)构造将i...原创 2019-02-23 23:03:04 · 4460 阅读 · 0 评论 -
常用正则表达式
欢迎补充!一、校验数字的表达式1. 数字:^[0-9]*$2. n位的数字:^\d{n}$3. 至少n位的数字:^\d{n,}$4. m-n位的数字:^\d{m,n}$5. 零和非零开头的数字:^(0|[1-9][0-9]*)$6. 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$7. 带1-2位小数的正数或负数:^(\-...原创 2019-02-08 00:02:36 · 337 阅读 · 0 评论 -
This Activity already has an action bar supplied by the window decor. Do not request Window.FEATURE_
异常信息:Caused by: java.lang.IllegalStateException: This Activity already has an action bar supplied by the window decor. Do not request Window.FEATURE_SUPPORT_ACTION_BAR and set windowActionBar to fal...原创 2019-01-14 14:20:04 · 962 阅读 · 0 评论 -
问题:No toolchains found in the NDK toolchains folder for ABI with prefix解决方法
问题:No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android解决方法:1.找到自己本地的android-sdk,如果下载了ndk的相关sdk,会有一个叫“ndk-bundle”的文件夹2.打开toolchains文件夹3.可以发现,里面没...原创 2019-01-12 12:43:33 · 4150 阅读 · 2 评论 -
问题: Your project contains C++ files but it is not using a supported native build system.解决方法
使用JNI时出现问题:Error: Your project contains C++ files but it is not using a supported native build system. Consider using CMake or ndk-build integration. For more information, go to: https://d.a...原创 2019-01-12 11:04:25 · 2832 阅读 · 2 评论 -
问题:Android NDK location should not contain whitespace...解决方法
在Android Studio环境开发时,可能会遇到如下问题:Android NDK location should not contain whitespace, as this can cause problems with the NDK tools.或者android SDK Location should not contain whitespace, as this c...原创 2019-01-12 10:45:46 · 10515 阅读 · 0 评论 -
更改Android Studio的Logcat缓冲区大小以及Logcat刷新过快的解决方法
方法一找到 Android Studio的安装目录\bin\idea.properties 文件修改文件中的idea.cycle.buffer.size=1024 例如: idea.cycle.buffer.size=20480方法二通过Android Studio进行设置:File–>Settings–>Editor–>General–>Consol...原创 2019-02-26 10:15:57 · 8762 阅读 · 1 评论 -
Failed to launch emulator: emulator: ERROR: x86 emulation currently requires hardware acceleration!
在使用Android Studio进行开发或使用其他软件进行开发(如使用VS Code进行Flutter开发)时,偶尔会出现如下问题:Failed to launch emulator: emulator: ERROR: x86 emulation currently requires hardware acceleration!Please ensure Windows Hypervisor...原创 2019-03-02 22:39:30 · 9245 阅读 · 0 评论 -
迁移Android项目到AndroidX以及新旧工件和类映射关系表
文章目录1.迁移Android项目到AndroidX2. 新旧工件映射关系表3.新旧类映射关系表1.迁移Android项目到AndroidX 由于Google以后将不再维护更新android.support库,因此有必要将原有项目迁移至androidx库。 AndroidX 会将原始支持库 API 软件包映射到 androidx 命名空间。只有软件包和 Maven 工件名称发生...原创 2019-10-05 03:04:43 · 4197 阅读 · 0 评论 -
Android取消EditText自动聚焦、自动弹出输入法的方法
当跳转到带有EditText的界面后,App会自动弹出输入法,严重影响了用户体验。因此,我们有时候需要取消EditText的默认聚焦。方法一:在EditText的父控件中加上这两行代码:android:focusable="true" android:focusableInTouchMode="true"例如:<?xml version="1.0" encoding="utf-...原创 2019-10-04 06:13:56 · 2245 阅读 · 2 评论 -
PopupWindow的isShowing()方法总是返回false的原因及解决方法
问题: 在使用PopupWindow时,通常需要通过其isShowing()方法来判断PopupWindow显示与隐藏,然而isShowing()如果不注意使用,就会得到总是返回false的结果。原因: 当我们通过点击其他组件(如按钮)触发PopupWindow时,焦点聚焦在那个组件上而不在PopupWindow的视图里,由此造成系统认为PopupWindow对象是隐藏的,因此一...原创 2019-10-02 01:42:53 · 3176 阅读 · 0 评论 -
setOnItemClickListener cannot be used with a spinner错误
错误提示:java.lang.RuntimeException: setOnItemClickListener cannot be used with a spinner.错误原因:Spinner对象不支持使用setOnItemClickListener方法监听点击事项解决方法:使用setOnItemSelectedListener方法代替setOnItemClickList...原创 2019-04-12 12:56:23 · 5652 阅读 · 0 评论 -
More than one file was found with OS independent path 'lib/armeabi/xxxx.so'解决方法
错误在组件化方案中容易出现以下问题More than one file was found with OS independent path 'lib/armeabi/xxxx.so'原因这个错误的意思是同样的依赖路径存在两个,说人话就是两次导入了同一个名称的依赖,然后系统就不知道要以哪一个为准。解决方法找到so库存放目录,找出相同的so文件,删掉其中一个,这个方法简单除暴,但是也...原创 2019-03-31 14:33:42 · 43625 阅读 · 2 评论 -
glide加载图片不使用缓存
Glide加载相同URL时由于缓存无法更新图片的问题如果是本地图片,可以采取取消缓存的方式,这样是比较简单的操作: .skipMemoryCache(true) // 不使用内存缓存 .diskCacheStrategy(DiskCacheStrategy.NONE) // 不使用磁盘缓存 .into(imageView); 无论本地图片网络图片,都可以使用另一个...原创 2019-03-31 00:31:10 · 11064 阅读 · 0 评论 -
Android TextView 多种方式显示图片
1.XML文件中指定属性值这种方式应该是最常用的了,在TextView的左上右下显示图片,可用android:drawableLeft android:drawableTop android:drawableRight android:drawableBottom实例代码如下:<TextView android:id="@+id/textview_01" an...原创 2019-03-30 13:48:05 · 986 阅读 · 0 评论 -
Unable to resolve host "***.***.com": No address associated with hostname
错误Unable to resolve host "verify.baidubce.com": No address associated with hostname原因出现这个错误的原因一般是由于网络出错了,此时可以从一下两个方面分析程序。android设备网络连接没打开,例如3G网络和WIFI网络,或者当前的网络无可用,无法联网如果遇到这种错误时,请先查看网络是否已正常连接,网...原创 2019-03-30 13:08:04 · 33105 阅读 · 1 评论 -
Toast报Can't create handler inside thread that has not called Looper.prepare() 错误
错误使用子线程调用Toast报Can’t create handler inside thread that has not calledLooper.prepare()错误。原因toast的实现需要在activity的主线程才能正常工作,传统的非主线程不能使toast显示在actvity上,只能通过Handler可以使自定义线程运行于Ui主线程。解决方法Looper.prepare()...原创 2019-03-30 11:16:09 · 3207 阅读 · 0 评论 -
flutter initializing gradle解决方案
方案一该方案是认为中国访问不了google,改为使用镜像访问。在Flutter SDK 找到 这个gradle 文件 修改仓库地址即可。修改该文件: maven { url 'https://maven.aliyun.com/repository/google' } maven { url 'https://maven.aliyun.com/repositor...原创 2019-03-03 00:40:54 · 905 阅读 · 0 评论 -
Activity生命周期
Activity是由Activity栈进管理,当来到一个新的Activity后,此Activity将被加入到Activity栈顶,之前的Activity位于此Activity底部。Acitivity一般意义上有四种状态:1.当Activity位于栈顶时,此时正好处于屏幕最前方,此时处于运行状态;2.当Activity失去了焦点但仍然对用于可见(如栈顶的Activity是透明的或者栈顶Act...原创 2018-11-19 17:07:28 · 712 阅读 · 0 评论 -
Android动态权限获取
对于Android6.0及其以上版本,有九组权限不能通过AndroidManifest文件配置获取,需要通过运行时动态请求来获取,这9组权限如下图所示:动态请求权限的代码示例如下,大家可以参考来适应自己的项目: /** * * @param activity 传入所在的Activity * @param permissions 权限组,如new S...原创 2018-11-18 23:46:03 · 535 阅读 · 0 评论 -
Repo工具小教程(Android版本导出)
repo 签出某个Android版本:repo forall -c git checkout android-6.0.1_r171:下载android主线分支repo init -u https://android.googlesource.com/platform/manifest2:下载android其它分支repo init -u https://android.google...原创 2018-11-11 15:10:49 · 1441 阅读 · 0 评论 -
[Android5.0源码透析](四)JNI调用Java对象
一、得到静态(static)和实例(instance)的域与方法的JNI函数函数 描述 GetFieldID 得到一个实例的域的ID GetStaticFieldID 得到一个静态的域的ID GetMethodID 得到一个实例的方法的ID GetStaticMethodID 得到一个静态方法的ID 实例://创建一...原创 2018-08-13 09:27:58 · 301 阅读 · 0 评论 -
Android获取超级管理员权限
1.定义特殊的广播接收者,系统超级管理员的广播接收者public class MyDeviceAdminReceiver extends DeviceAdminReceiver{ @Override public void onReceive(Context context,Intent intent){ //TODO }}2.在AndroidM...原创 2018-08-07 21:30:13 · 4244 阅读 · 0 评论 -
ListView优化问题
在使用ListView控件的过程中,由于加载条目过多,在滑动时可能会造成卡顿,这是因为ListView在当前屏幕显示多少个条目,就会创建多少个对象,每一个条目都是一个对象。在滑动时,滑出屏幕的条目对象会被销毁,新加载到屏幕的条目会创建新的对象,因此在滑动时会不断地创建对象和销毁对象,并且每一个条目都需要加载一次布局,加载布局不仅对内存消耗比较大,而且浪费时间。如果条目包含图片,图片...原创 2018-08-07 18:14:14 · 783 阅读 · 0 评论 -
java.lang.RuntimeException: setAudioSource failed异常处理
调用音频时出现java.lang.RuntimeException: setAudioSource failed报错。好多资料说需要在AndroidManifest.xml文件中增加如下配置以授予程序录制声音的权限:<uses-permission android:name="android.permission.RECORD_AUDIO"/>添加之后,如果依旧出现如上报错...原创 2018-08-06 10:41:13 · 3657 阅读 · 0 评论 -
Android EditText输入限制
android:maxLength="10"//限制长度android:digits="0123456789qwertyuioplkjhgfdsazxcvbnmQWERTYUIOPLKJHGFDSAZXCVBNM"//限制输入类型示例代码: <EditText android:id="xxx" android:layout_widt...原创 2018-07-28 11:20:10 · 795 阅读 · 0 评论 -
Fragment各个阶段状态理解
原创 2018-08-04 00:05:36 · 902 阅读 · 0 评论 -
使用Android Studio进行签名及使用gradle配置签名
一、Debug模式下的签名 运行或从IDE调试项目时,Android的Studio会自动由Android SDK工具生成的调试证书签名的APK。您运行或调试Android Studio中的项目第一次,IDE会自动在调试密钥库和证书 $HOME/.android/debug.keystore,并设置密钥库和密钥的密码。 因为Debug模式下的证书由构建工具创建,这样是...原创 2018-07-29 09:54:30 · 5538 阅读 · 0 评论 -
android开发中的bad base-64错误
在涉及到服务器的软件中,由于使用android的Base64解码功能,而服务器端加密为了防止URL格式问题,会采用Apache的URLSafeEncode等方式进行数据安全加密,android端使用Base64.decode(src,Base64.URL_SAFE)不会出现问题但是如果android自己加密,使用的时Base64.encodeToString(bstr,Base64.DEFAU...原创 2018-07-29 09:37:18 · 21174 阅读 · 6 评论 -
Android查看Apk签名
1.命令行方式:直接运行keytool命令时不可行的 需要配置环境,将keytool.exe所在的目录配置到环境变量中可以直接下jdk安装配置,也可以用as自带的目录:\jre\bin\命令:keytool -list -v -keystore xxxx.keystore(其中xxxx.keystore为你的签名文件绝对路径,后缀也可为.jks)2.利用Android Studio查看...原创 2018-07-29 09:36:25 · 1505 阅读 · 0 评论 -
Android全屏设置
1.代码方式(在setContentView调用之前):requestWindowFeature(Window.FEATURE_NO_TITLE);// 隐藏标题getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);// 设...原创 2018-07-28 23:16:00 · 4925 阅读 · 0 评论 -
[Android5.0源码透析](一)获取Android5.0源码
一、获取环境1.linux系统2.安装了jdk3.安装了curl(未安装可用以下命令安装:sudo apt-get install curl-core)二、安装Repomkdir ~/binPATH=~/bin:$PATHcurl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo...原创 2018-08-08 21:37:13 · 648 阅读 · 0 评论 -
[Android5.0源码透析](二)源代码结构
一、Android5.0源代码总体结构(1)核心工作部分(Core Project):这部分是建立Android系统的基础,被保存在根目录的各个文件夹中。(2)扩展工作部分(External Project):使其他开源项目具有扩展功能,被保存在根目录的"external"文件夹中。(3)包部分(Package):提供Android的应用程序、内容提供者、输入法和服务,被保存在根目录的...原创 2018-08-08 22:26:17 · 328 阅读 · 0 评论 -
国内下载Android源码教程
本教程采用Linux系统Ubuntu为例进行Android源码的下载一、下载环境配置1.如果你的Linux系统或虚拟机还没有安装JDK,请先安装JDK,安装命令为sudo apt-get install openjdk-8-jdk如果无法安装,可以先检查下网络是否可用,如果网络可用,可能是安装源没有更新,可以使用以下命令进行源更新:sudo apt-get update...原创 2018-11-10 13:21:06 · 1940 阅读 · 0 评论 -
Android自定义View(四)-基础应用篇
如果你还没了解过自定义View的一些原理,建议先看一下这几篇博客,做个了解。Android自定义View(一)-Measure原理篇Android自定义View(二)-Layout原理篇Android自定义View(三)-Draw原理篇在开始之前,我们先来看下自定义View的步骤:1.创建自定义View类2.自定义View的属性3.在自定义View的构造方法中获得自定义...原创 2018-09-22 15:49:25 · 461 阅读 · 0 评论