![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android开发
Mr_tigerchou
这个作者很懒,什么都没留下…
展开
-
android编译错误AAPT: error: resource android:attr/lStar not found解决
最近flutter项目Android编译出现了错误,是突然之间编译不过,之前都是好的,错误信息如下:FAILURE: Build failed with an exception.* What went wrong:Execution failed for task ':app:processOfficialDebugResources'.> A failure occurred while executing com.android.build.gradle.internal.task原创 2021-09-03 13:01:00 · 34511 阅读 · 18 评论 -
Could not get unknown property ‘manifestOutputDirectory‘问题解决
今天早上更新Android Studio的gradle插件,后来编译的时候遇到了一个问题:Could not get unknown property 'manifestOutputDirectory' for task ':app:processDebugManifest' of type com.android.build.gradle.tasks.ProcessMultiApkApplicationManifest.后来解决了,是因为华为推送的一个插件引起的,classpath 'co原创 2021-06-28 17:16:17 · 4457 阅读 · 5 评论 -
EditText常见操作之监听键盘输入和搜索动作
EditText的常见操作,监听键盘输入和搜索动作EditText如果要在键盘上显示搜索按钮,需要在xml中加入这个属性: android:imeOptions="actionSearch"在代码中添加EditText的搜索按键响应:原创 2020-02-25 18:19:22 · 3019 阅读 · 0 评论 -
Android打包出现Out of memory: Java heap space的问题解决
当android项目比较大的时候,打包时可能会出现Out of memory的错误,错误信息如下:Out of memory: Java heap space.Please assign more memory to Gradle in the project's gradle.properties file.For example, the following line, in the ...原创 2019-11-27 11:29:58 · 21847 阅读 · 2 评论 -
友盟推送自定义通知声音
友盟推送支持自定义通知声音,在Android8.0以下,就很简单:在您项目的res/raw/下放置命名为umeng_push_notification_default_sound。若无此文件,则默认使用系统的Notification声音在Android8.0以上机型,那就需要自定义通知了,因为android8.0以上的Notification引入了Channel的概念,声音是定义在Cha...原创 2019-11-21 15:47:37 · 3238 阅读 · 1 评论 -
Android NDK开发笔记四:Java和c/c++的相互调用
JNI的引入使java有了调用C/C++端代码的能力,然而在JNI中还有 一个非常重要的内容,那就是在C/C++本地代码中访问Java端的代码,一个常见的应用就是获取类的属性和调用类的方法,为了在C/C++中表示属性和方法,JNI在jni.h头文件中定义了jfieldId,jmethodID类型来分别代表Java端的属性和方法。 我们在访问,或者设置Java属性的时...原创 2019-11-21 00:00:24 · 617 阅读 · 0 评论 -
Iteration can be replaced with bulk 'Collection.addAll' call 数组转成List的方法
字符串数组转换为List在我们开发中是一个很常见的操作,我们可能从SharedPreferences读出数据需要转换成list,很多时候可能是这样写的:public List<String> getHistory() { String historyStr = sharedPreferences.getString("history", null); if (histor...原创 2019-10-20 00:56:51 · 6062 阅读 · 1 评论 -
Android写一个通用的安全无内存泄漏的Handler
大家都知道,在很久之前,谷歌就发出警告This Handler class should be static or leaks might occur,不要在Activity中直接 new 一个Handler使用,因为这样创建Handler是一个内部类,会默认持有外部类的引用,就是Activity的引用,可能造成内存泄漏,类似于这样:什么情况下会造成内存泄漏呢?比如你在Activity中使...原创 2019-10-14 00:16:58 · 485 阅读 · 0 评论 -
Environment.getExternalStorageDirectory() is deprecated过时的替代方案
用新的Android SDK 29编译的时候,Studio提示Environment.getExternalStorageDirectory()过时了,要用Context#getExternalFilesDir代替,Android Q以后Environment.getExternalStorageDirectory()返回的路径可能无法直接访问,所以改成了Context#getExternalFi...原创 2019-09-20 20:00:47 · 32484 阅读 · 7 评论 -
Android图片压缩上传和解决上传服务器之后图片旋转的问题
Android图片上传是开发中最常见的应用场景,但是现在的手机摄像头像素都非常高,随便拍一张照片都在3~4M之间,分辨率也都在3000x4000左右,如此大的照片如果直接显示或者上传到服务器,体验都是非常差的,所以图片在上传之前,一般要做两次压缩,一次尺寸压缩,一次质量压缩。话不多说,直接上代码吧一、图片的压缩一般写一个工具类进行处理,我们起一个方法名就叫compress吧/** *...原创 2019-09-16 14:52:36 · 1658 阅读 · 0 评论 -
Android Studio升级3.5之后buildOutput.apkData must not be null的问题解决
其实每次Android Studio版本升级都有坑,抱着尝鲜的心态今天把AS升级到3.5之后,在使用Build => Generate Signed APK打包的时候,出现了一个错误:Caused by: java.lang.IllegalStateException: buildOutput.apkData must not be null at com.android.bui...原创 2019-08-28 10:54:29 · 5515 阅读 · 12 评论 -
友盟推送U-Push 6.0.1的集成和冲突问题解决
一、首先,在友盟后台申请应用对应的Appkey和Umeng Message Secret这两个在初始化友盟SDK的时候要用到,申请成功以后信息如下:二、在项目中集成友盟的SDK,在项目的gradle文件中写入友盟sdk的maven地址maven { url 'https://dl.bintray.com/umsdk/release' }在app模块下的gradle中添加友...原创 2019-07-24 15:12:16 · 3694 阅读 · 0 评论 -
Android史上最简单的沉浸式状态栏实现,不要再乱了
沉浸式状态栏,不用我说,大家都知道。就是让你的应用跟状态栏融为一体,视觉上体验更加完美。Android的沉浸式状态栏实现本来是挺简单的一件事情,但是大家有没有一种感觉,太乱了!本来还有一点思路的,看完网上一大堆的文章以后,更加的懵逼,感觉就是真TM的复杂。今天我就做一个最简单的总结,看完之后大家就知道怎么做了,不用那么复杂。沉浸式状态栏主要分三种版本情况(4.4以下版本不做考虑,保持原...原创 2019-07-14 18:07:36 · 3652 阅读 · 0 评论 -
运行程序报错instantRunSplitApkResourcesDebug\out\slice_1\resources_ap的问题解决
最近在开发项目中使用Android Studio运行项目,发现运行时报错,怎么clean代码和rebuild项目都没用,报错信息如下:Caused by: java.lang.RuntimeException: java.lang.RuntimeException: java.io.FileNotFoundException: E:\NewGit\testdemo\build\intermed...原创 2019-05-29 17:59:37 · 5735 阅读 · 3 评论 -
Android制作一个简洁的自定义ProgressDialog
ProgressDialog是安卓应用中常见的交互控件,在有网络请求的地方经常会使用到。如何自定义一个progress dialog是最基本的了,今天就制作一个简洁的ProgressDialog模板,以后可以直接拿过去修改成自己的风格,先看效果图:首先写一个dialog的布局文件<RelativeLayout xmlns:android="http://schemas.andr...原创 2019-04-28 10:35:24 · 1938 阅读 · 1 评论 -
TabLayout的使用和自定义红点消息提示
Tab+ViewPager可以说是Android开发中非常常见的布局了,以前实现tab布局一般使用LinearLayout或者HorizontalScrollView,还需要自己监听ViewPager的滑动。如果想实现比较顺滑的滑动效果,我们还需要自定义动画。在Android6.0之后,谷歌在design包中提供了一个widget叫TabLayout,TabLayout继承自HorizontalS...原创 2019-04-07 22:26:37 · 4124 阅读 · 0 评论 -
Android Studio运行项目提示Edit configuration
在使用Android Studio过程中,如果改变了Build Variant,如改成release编译,运行项目经常会遇到弹出Edit configuration的弹框,运行按钮旁边也会出现一个红叉这是因为在build.gradle文件中没有配置签名文件信息buildTypes { debug { applicationIdSuffix "....原创 2019-04-05 13:55:53 · 13457 阅读 · 1 评论 -
Android Volley使用Https与服务器连接失败的解决方案
今天在与后台服务器调试时,因为使用了https,在Android 6.0以上的手机上面连接正常,在Android 6.0以下的手机出现了下面的异常,导致连接服务器失败:com.android.volley.NoConnectionError: javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorEx...转载 2019-03-14 19:23:24 · 1472 阅读 · 0 评论 -
Android Studio 3.0 升级以后若干环境问题解决
1. Android Studio 运行时提示 ” Please select Android SDK“将gradle编译的minSDK version 改为 17 以上是因为升级了build tools的原因,要打开project structure将 Build Tools Version改成最新的2.升级Android Studio3.0之后,项目报错 Error:Rem...原创 2019-03-02 19:40:43 · 498 阅读 · 0 评论