安卓开发进阶
Android入门,项目开发中用到的一些知识,常见的异常的处理方案。
Jabony
只要还有明天,今天就永远是起跑点
展开
-
AS编译报错:More than one file was found with OS independent path META-INF/library_release.kotlin_module
More than one file was found with OS independent path 'META-INF/library_release.kotlin_module'原因是依赖中有kotlin的库。解决方案1. 如果可以修改依赖的library工程编译方式,在library工程build.gradle的android节点下增加compileOptions,样例如下:对于“-module-name”,需要设置为一个唯一的名字android { compil...原创 2021-01-21 13:16:49 · 2314 阅读 · 0 评论 -
Android 颜色透明度换算
每次开发的时候,UI在设计图中标注的颜色都是类似于#FF0000(红色),这倒没什么,但是呢后面却标注了30%的透明度,这下抓狂了,透明度怎么计算?不用着急,不用你算,收藏我这篇文章即可。颜色简介Android中的颜色值通常遵循RGB/ARGB标准,使用时通常以“#”字符开头,以16进制表示。常用的颜色值格式为:#RGB#ARGB转载 2016-10-13 09:59:43 · 40728 阅读 · 1 评论 -
【git】一文看懂如何用IDEA中Git提交代码到远程仓库
首先感谢大家的支持!部分本篇博客显示的内容格式惨不忍睹,特意调整一下,希望对大家有所帮助。已经在单机环境下使用一段时间Git了,发现Intellij IDEA中的Git插件功能并不完善。首先Intellij IDEA中Git本地仓库必须建立在当前项目文件夹下,其它自定义的位置不支持。其次你无法使用Intellij IDEA的Git插件将位于本地仓库的内容上传到远程仓库...原创 2015-05-07 16:14:19 · 28604 阅读 · 2 评论 -
【android9】解决Okhttp无法正常调用接口问题
场景升级华为升级android 9 ,发现接口调用无法成功问题原因应用官方的说明:在 Android 6.0 中,我们取消了对 Apache HTTP 客户端的支持。从 Android 9 开始,默认情况下该内容库已从 bootclasspath 中移除且不可用于应用。且Android P 限制了明文流量的网络请求,非加密的流量请求都会被系统禁止掉。解决办法首先手动引...原创 2019-06-11 18:39:54 · 5122 阅读 · 4 评论 -
【Android输入法源码】基于GooglePinyin开源代码进行修改可运行!!!
起因:之前是没有做过输入法的,但是最近有个项目需要用到,网上找了很多资源或多或少都有点问题,希望各位博主或者写文章的人都能秉着对自己文章和资源负责任的态度进行创作,以免对大家造成误解或者疑惑。过程:找了非常多的网站,csdn也有,有一些根本没法用,eclipse不能,androidStudio的也不行,有的说可行但是没有告诉在什么环境下可行。很让人郁闷,通过努力终于可以正常运行,并做了...原创 2019-05-17 11:44:02 · 14289 阅读 · 33 评论 -
【已解决】react-native run-android Android project not found
在原生安卓项目集成React-native框架后,执行react-native run-android提示“Android project not found,try 'react-native android' ”运行了react-native android 也是不能完成编译打包的。出现这个问题主要是因为android项目的目录结构跟react-native支持的目录结构不一致导...原创 2019-04-30 12:43:12 · 2708 阅读 · 0 评论 -
【jenkins】gradle命令打包apk已解决Could not find method google() for arguments [] on repository container.
jenkins持续集成自动打包apk时出现错误,原因是用的是gradle3.3版本更新配置gradle4.1即可网上的解决方案道理是一样的,其原理就是采用编译的gradle版本和实际项目用的gradle版本不一致,改成一致便可以下是非jenkins集成项目出现这个错误提示的解决办法gradle-wrapper.properties配置不一样,把此行distributionU...原创 2019-03-12 21:18:06 · 15270 阅读 · 0 评论 -
【gradle】打包自定义文件名apk兼容gradle3.0以上
需求:打包生成自定义的apkbuild.gradle做APK命名配置的时候发现如下问题Could not get unknown property 'outputFile' for object of type原因:outputFile 在升级Gradle3以后为readOnly只读 不可修改解决方案: applicationVariants.all { ...原创 2019-03-12 20:51:36 · 373 阅读 · 0 评论 -
Android状态栏与背景图完美融合
这个特性是安卓5.0以后才支持的所以需要对系统版本号做判断1、代码实现,在activity super.onCreate之后 setContentView之前if (Build.VERSION.SDK_INT >= 21){ View decorView = getWindow().getDecorView(); decorView.setS...原创 2018-04-26 16:41:57 · 6375 阅读 · 2 评论 -
【已验证】android studio 打包报 MissingTranslation 的3种解决方式
Android studio打包生成android apk的时候遇到了编译问题,明明没有想要做英文翻译,但是AS生成apk的时候自己走了translate in english的路线。几个string.xml文件报错 string value is not translated in "zh"(Chinese)[MissingTranslation]。1、针对某几个字符串可采用,在string 里...原创 2018-03-20 18:11:37 · 4231 阅读 · 0 评论 -
【已解决】Android GreenDao混淆错误导致崩溃
使用GreenDao数据库,混淆发布后运行出现 Could not init DAOConfig项目混淆日志报错,Could not init DAOConfig解决:在proguard-rules.pro中加入-keepclassmembers class * extends de.greenrobot.dao.AbstractDao { public static java.lan...原创 2018-03-20 18:05:27 · 2190 阅读 · 0 评论 -
【android&gradle】华为推送HwPush_SDK_V2705.jar与百度地图.jar冲突
#问题项目中经常会出现集成多个三方的libs,经常出现集成的某A.jar 和 B.jar 而 B.jar 却已经包含了A中的(部分,强调一下)方法出现这种情况的因素有很多种,博主自己遇到的就是各个sdk升级不可能那么及时。这次遇到的问题就是华为推送中包含了百度地图相关类,而我新下载的百度地图sdk存在了相同的类导致 无法编译通过。#尝试尝试在用 provided files原创 2018-01-22 01:31:07 · 1800 阅读 · 1 评论 -
AndroidStudio升级Gradle3.0使用
#Gradle classpath 'com.android.tools.build:gradle:3.0.1' 官方默认搭配是 gradle 4.1,最新4.4.1 ,速度将更快: distributionUrl=https\://services.gradle.org/distributions/gradle-4.4.1-all.zip百度云下载地址: gr原创 2018-01-20 12:33:25 · 1175 阅读 · 0 评论 -
【AndroidStudio】3.0升级gradle遇到的坑
升级了android studio3.0后,对于文件的搜索和方法中参数的使用,是一个重大的改变,但升级gradle后,缺出现很多的问题。个人整理一下,希望对大家有所帮助。说明:我原来的环境是as2.3+gralde2.14.1+plugin2.2.3升级后的环境是:as3.0+gradle4.2.1+plugin3.0.01、Error:(82, 0) Ca转载 2017-12-29 18:19:26 · 12272 阅读 · 0 评论 -
AndroidStudio Gradle 解决Error:All flavors must now belong to a named flavor dimension. Learn more at
解决Error:All flavors must now belong to a named flavor dimension. Learn more at https://d.android.com这个问题是Android studio升级到3.0.1之后,gradle4.1主程序的build.gradle中的gradle版本改成了3.0.1 dependencies转载 2017-12-29 15:28:16 · 7792 阅读 · 4 评论 -
安卓8.0应用内apk安装更新问题
谷歌开发大会后安卓8.0发布,刚好自己提前在花粉俱乐部发起的新系统体验申请,于是将现在的华为mate9升级到android O,调试项目的时候发现应用内安装apk出了问题,打开应用的时候屏幕只是一闪,不能正常安装。 在安卓7.0下安装apk使用fileprovider打开应用管理器的方法可以参考网上资料。查阅资料发现安卓8.0安装apk需要新的权限,具体如下在AndroidManife原创 2018-01-17 15:50:14 · 5463 阅读 · 3 评论 -
Annotation processors must be explicitly declared now.Please add them to the annotationProcessor con
Error:Execution failed for task ':app:javaPreCompilePreProductDebug'.> Annotation processors must be explicitly declared now. The following dependencies on the compile classpath are found to contain原创 2017-12-29 18:02:39 · 7712 阅读 · 0 评论 -
【AndroidStudio】Aapt2Exception
Error:(113, 5) error: style attribute '@android:attr/windowEnterAnimation' not found.Error:(113, 5) error: style attribute '@android:attr/windowExitAnimation' not found....Error:java.util.concurren原创 2017-12-29 18:01:01 · 710 阅读 · 0 评论 -
AndroidStudio 配置java1.8 lambda
2017年底了做完总结,没有特别事情,将所有工具和插件以及三方的SDK都检查和更新了一遍。java1.7也升级到了1.8 顺便配置一下新的特性lambda有两种方式配置流程:defaultConfig { ..// onejackOptions {enabled true}//twocompileOpt原创 2017-12-29 14:03:01 · 3198 阅读 · 0 评论 -
ijkplayer 解决rtmp 延迟长的问题,达到秒开的结果
最近采用ijkplayer做视频直播推流,发现总是延迟,主要是视频缓冲区的问题以下是解决方案ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "start-on-prepared", 0); ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_FO原创 2017-12-28 14:22:40 · 8404 阅读 · 2 评论 -
Android Studio 检查并去除无用资源文件
在android studio中其实也是跟Eclipse一样,可以使用Lint插件的。具体方法如下。 在项目中点击右键,在出现的右键菜单中有“Analyze” --> “run inspaction by Name ...”。在弹出的搜索窗口中输入想执行的检查类型,如“Unused Resources”。不必全部输入就应该自动找到了,点击后会弹出“inspaction scope”选择窗口,原创 2017-12-26 09:55:29 · 7647 阅读 · 0 评论 -
Android轻松实现代码混淆
Android轻松实现代码混淆转自:http://blog.csdn.net/jiashuai94/article/details/779910771、简介代码混淆(Obfuscated code)亦称花指令,是将计算机程序的代码,转换成一种功能上等价,但是难于阅读和理解的形式的行为。混淆的目的是为了加大反编译的成本,但是并不能彻底防止反编译。2转载 2017-09-29 15:16:34 · 346 阅读 · 0 评论 -
【魅族手机】禁用listview回弹或下拉悬停
不同的安卓厂商对ListView或ScrollView都做了一些动画效果,比如下拉时为了产生弹性美感而有大幅度回弹效果,再比如魅族的下拉悬停,有时做了一个下拉刷新的功能会与之冲突。今天要说的不是下拉刷新,就是普通的listView或者ScrollView,包括非滚动的listView、GridView等等设置OverScrollMode的Over_SCROLL_NEVER(原创 2017-09-15 15:07:56 · 1375 阅读 · 0 评论 -
微信Android SDK提示com.tencent.mm.plugin.openapi.Intent.ACTION_REFRESH_WXAPP
这个问题还真的挺坑的,微信sdk给的Demo中 manifest.xml没有下面红色的内容造成的,添加后即可解决此问题 <activity android:name=".wxapi.WXPayEntryActivity" android:exported="true" android:launchM原创 2017-08-29 19:06:09 · 10947 阅读 · 0 评论 -
【Androidd Release】AndroidStudio 发布apk 提示资源文件未翻译
"app_name" is not translated in zh, zh_CN…..AndroidStudio 发布apk 提示资源文件未翻译;打开项目目录下的build.gradle文件(这就是gradle的配置文件,gradle就是编译工具了),然后按照提示一股脑把新参数全部加到android里面。android {…lintOptions{chec原创 2017-06-13 15:19:20 · 868 阅读 · 0 评论 -
Android保存图片到系统不能及时生成缩略图的解决办法
在应用的图集中,通常会给用户提供保存图片的功能,让用户可以将自己喜欢的图片保存到系统相册中.这个功能其实很好做,系统提供了现成的API:简单的来说就这一行代码: MediaStore.Images.Media.insertImage(getContentResolver(), mBitmap, "", ""); 这个方法的返回值及为插入图片的路径St转载 2017-06-01 18:20:27 · 2652 阅读 · 0 评论 -
自定义Toast实现多次触发只显示一次toast使用改良
使用场景描述当我们处于某个场景,例如一个按钮可以触发toast的显示,当你在多次点击按钮时,会多次触发toast的显示。而调用android原生的toast的makeText的方式所生产的toast是被加到一个队列里面,然后依次执行。这样就会出现多次点击按钮触发的toast一直会按队列出现在界面上,而且即使退出了当前界面也会一直出现在手机上,而且无法手动取消,这时的用户体验变得非常的差。这原创 2017-05-26 09:09:12 · 2162 阅读 · 0 评论 -
Fragment叠加点击穿透解决方案
来源:http://blog.csdn.net/dong19870625/article/details/50550147当Fragment栈中有多个add Fragment时,点击最上层Fragment时的空白处,如果对应的下层Fragment中存在按钮或其他事件,那么奇妙的事情就发生了,会穿透点击到下方的事件,不可否认,这是我们不愿意看到的。 究其原因:Fragment的本质就是一个V转载 2017-04-21 14:31:21 · 1030 阅读 · 0 评论 -
Android Studio指定引用jnilibs 特定CPU架构的so库文件
稍微大一些的项目都会用到第三方库,所以不可避免的会有针对不同手机cpu架构的.so库文件'x86', 'x86_64', 'mips', 'mips64' 'armeabi' ,'armeabi-v7a', 'arm64-v8a'但是不是所以的第三方库都会适配所以的cpu架构,本人亲测采用一种降低性能却减少库文件的方式就是只用armeabi-v7a库;有armeabi-v7a就把其原创 2017-03-23 14:03:43 · 6530 阅读 · 1 评论 -
Android 多CPU架构支持所需要了解的知识
前言Android系统目前支持以下七种不同的CPU架构:ARMv5,ARMv7 (从2010年起),x86 (从2011年起),MipS (从2012年起),ARMv8,MIPS64和x86_64 (从2014年起),每一种都关联着一个相应的ABI。ABI是指应用基于哪种指令集来进行编译。 如果项目中使用到了NDK,它将会生成.so文件,Android应用支持的ABI取决于APK中位于转载 2017-03-23 11:25:19 · 6454 阅读 · 0 评论 -
Realm 引用多个库的jni架构平台支持冲突的问题
因为原来的工程里面的.so库,只有armeabi,加入Realm库后,引起冲突log如下:java.lang.UnsatisfiedLinkError:com.android.tools.fd.runtime.IncrementalClassLoader$DelegateClassLoader[DexPathList[...]]后面看了这篇文章http://blog.devwik转载 2017-03-23 11:24:29 · 4483 阅读 · 0 评论 -
TextView中显示不同大小字号的内容
方式1:title.setText("Your big island ADVENTURE!");//这是原样显示方式2:Spannable WordtoSpan = new SpannableString("大字小字"); WordtoSpan.setSpan(new AbsoluteSizeSpan(20), 0, 2, Spannable.SPAN_EXC转载 2017-03-23 11:20:38 · 1036 阅读 · 0 评论 -
【android】 ListView 动态显示隐藏header和footer问题
问题:ListView添加header和footer是开发中很常见的问题,经常会动态的显示和隐藏header和footer,直接setVisibility中的View.GONE并不能达到预想的效果。直接设置GONE后,虽然元素是隐藏了,但是所占区域却一直存在。等同于View.INVISIBILE。后来在网上查找后发现。解决:只要给footer再加上一个layout或者是父级的view。原创 2016-12-07 17:57:16 · 1159 阅读 · 0 评论 -
【TextView】自定义TextView中文换行排版问题修复
以下为解决排版和新代码public class MyTextView extends TextView { private String text; private float textSize; private float paddingLeft; private float paddingRight; private float paddingTop原创 2016-11-25 15:50:39 · 1201 阅读 · 0 评论 -
【虚拟按键】虚拟键适配PopupWindow显示位置
可以发现,虚拟键位,挡住了取消按钮的触控区域,网上百度一下,大多是在布局内家加上(Android:fitsSystemWindows=”true”) ,BUT我的控件不是布局,里面写好的啊!我采用的自定义布局,SO 问题就是如何让取消按钮的触控区域显示出来。解决办法:获取虚拟键高度,然后定位显示布局的位置public static Point getNavigationBarS转载 2016-09-09 18:23:43 · 2822 阅读 · 0 评论 -
android 实现带动画可拖拽gridview
领导这几天让做一个项目,就是可以实现像支付宝首页一样的可以长按拖动,删除的界面,以前没做过,领导让我做的时候觉得简直是老虎吃天,无从下手啊,可是领导的任务还是要实现的,没办法,就自己网上找咯,但是网上的demo五花八门无法满足我的需求,而且bug还很多,所以最后就自己实现了,说实话,这个效果困扰了我好几个星期,因为其中牵扯的知识点太多了,什么事件分发机制,动画效果,互换位置的算法,还有拖动,这些我转载 2016-08-24 16:11:02 · 2752 阅读 · 3 评论 -
关于序列帧动画,开始,结束监听的解决
发小菜鸟一枚,请多指教android中有渐变动画和帧动画两种,其中渐变动画是自带监听的,而帧动画却没有,淡腾了,如果我想在播放序列帧的开始和结束时进行操作怎么办?度娘无果,没办法自己写吧.附上Demo.自定义了一个ImageView--------AnimationImageView在这个AnimationImageView上定义了一个监听OnFrameAnimationLis转载 2015-10-13 13:37:30 · 6741 阅读 · 0 评论 -
Android 开源交流分享汇总
目录开源交流 1 群 ------ 开源交流 2 群 ------ 开源交流 3 群开源交流 4 群 ------ 开源交流 5 群 ------ 开源交流 6 群原创简介几群作者加速球效果4 群gavin可翻转Layout(正反面),可以翻转显示其背面的View,像真实的卡片一样2群Eric转载 2015-05-18 20:35:38 · 1309 阅读 · 1 评论 -
【git】Git检出某次提交指定版本
Git检出制定版本问题:Git采用分布式版本管理,不需要像SVN每一个分支都是一个完整项目。当我们需要找出某个版本或者某次提交时的版本时,应该怎么操作?解决:这里列举一个实例,本地没有版本需要从服务器检出指定某次提交是的版本本示例就拿git@china做演示第一步:先从服务器上找到版本提交日志 具体到哪一天 哪一次提交左边的字符串就是你提交那次版本第二步:原创 2015-05-14 18:52:37 · 21720 阅读 · 0 评论 -
【android】自定义组合控件PullToRefreshRecyeclerView
场景:自从Android 5.0发布以来,越来越多的开发者开始接触RecyeclerView,但是RecyclerView如何实现下拉刷新,上拉加在更多。于是我就偷懒 写了一个,以供大家参考和学习,以待大家改进。构思:想必大家对SwipeRefreshLayout这个控件有一定了解,没错本次自定义组合控件也就是SwipeRefreshLayout与RecyeclerView的组合。原创 2015-03-31 16:32:14 · 7020 阅读 · 2 评论