Android bug收集整理

Bug收集以及解决方案
1.使用git bash 添加submodule时,出现如下提示信息
Unregistered VCS root detected The directory C:\Users…\libs is under Git, but is not registered in the Settings
解决方法是:
http://stackoverflow.com/questions/27690431/configure-intellij-idea-such-that-source-detected-in-git-but-unregistered-vcs-ro

http://blog.csdn.net/longge92345/article/details/51902275



2.Android Studio gradle 编译提示‘Error:Configuration with name ‘default’ not found.’ 解决办法
http://blog.csdn.net/sinat_33195772/article/details/53640465



7.DELETE_FAILED_INTERNAL_ERROR和INSTALL_CANCELED_BY_USER异常 http://www.07net01.com/2017/03/1827555.html变



Error:(6, 0) Gradle DSL method not found: ‘google()’
https://stackoverflow.com/questions/45781489/error6-0-gradle-dsl-method-not-found-google



导入工程时android studio报 Migrate Project to Gradle?
http://blog.csdn.net/fdoubleman/article/details/53032863



今天在我写demo的时候遇到一个问题,当我加载Activity界面的时候,打出onCreate随手回车,
setContentView之后却始终无法显示界面,找遍一切可能出错的地方,最后在这个onCreate方法上面发现了猫腻。系统自动给我提供了这么一个onCreate()??
http://blog.csdn.net/sunluyao_/article/details/50395791
关于onCreate(Bundle savedInstanceState, PersistableBundle persistentState)



Method breakpoints may dramatically slow down debugging?????
https://www.cnblogs.com/toutou/p/debugging.html



Android Studio-断点调试-no executable code found at line android
http://blog.csdn.net/qq_32452623/article/details/73522558



Could not find method runProguard问题解决
显然,runProguard是错误所在。在分析了build.gradle文件后,发现确实指定了为false,去掉这个指定即可
http://blog.csdn.net/liranke/article/details/72866489



如何让EditText无法换行????
除了已经过时的singleLines属性,现在还有maxLines和Lines属性可以设置。
然而你会发现,即使同时设置了maxLines=”1”和lines=”1”,你的EditText依然是可以换行的。
其实很简单,只需要加上一条属性:
android:inputType=“text”
这时你设置的maxLines和lines就起作用了。



程序包org.apache.http不存在???
解决方法:
build.gradle中
在buildToolsVersion下边
defaultConfig上边
添加如下代码
useLibrary ‘org.apache.http.legacy’



static InputMethodManager.sInstance 导致的内存泄漏
https://github.com/square/leakcanary/issues/572



将新建的本地项目添加到git版本控制
在VCS—Enable Version Controll Integration中选择Git,给项目配置Git



Android studio No executable code found 断点不可用
http://blog.csdn.net/xx326664162/article/details/50350601
https://stackoverflow.com/questions/11591662/cannot-set-java-breakpoint-in-intellij-idea



Fiddler抓取Android真机上的HTTPS包
https://blog.csdn.net/Roland_Sun/article/details/30078353

Fiddler抓包教程
https://blog.csdn.net/chaoyu168/article/details/51065644 (配置完后记得要重启Fiddler)



git branch -r 显示的不是最新的远程分支列表 ???
业务需要,要拉取其他同事的分支代码,git branch -r 了一下,发现找不到同事的分支,
但gitlab中是有这个分支的,就是本地的远程分支列表和远程服务器上的分支不一致,git pull了好几次,
也没解决问题,后来git fetch了一下,就好了,后来查了一下git fetch, git fetch会把远程服务器上所有的更新都拉取下来,
git pull是把远程分支的代码拉取下来并合并到本地分支



为什么新增分支之后在本地用git branch -r看不到分支??????????????
https://segmentfault.com/q/1010000012128865/a-1020000012129465



Android样式之selector
https://www.cnblogs.com/lang-yu/p/oneDay.html
(一)、selector做为drawable和color使用时的区别和注意事项
1、background的selector
结论:background的selector,item只能用drawable属性,不能用color属性,并且drawable还必须用引用的形式
2、textcolor的selector
结论:textcolor的selector,item不能使用drawable属性,只能用color属性,值可以直接指定,也可以引用指定。



自定义AlertDialogue,通过设置自己的布局实现方式,需要注意一下一点:
1.需要去除系统自带的边框和背景色,否则,即使使用了自定义的背景的圆角,在自定义布局的外层还是有一个系统自带的边框
无系统边框自定义圆角AlertDialog
https://blog.csdn.net/my_worldlet/article/details/53333526
自定义AlertDialog去除黑色背景
https://blog.csdn.net/wapchief/article/details/73278563
android自定义控件之Dialog详解
https://blog.csdn.net/hnzcdy/article/details/50913668
AlertDialog自定义界面圆角有背景问题
https://blog.csdn.net/u014074418/article/details/52933537



ANDROID布局实现圆角边框
https://www.cnblogs.com/shanzei/p/4649010.html
设置了背景颜色。
android:topLeftRadius、android:topRightRadius、android:bottomLeftRadius、android:bottomRightRadius分别是左上角、右上角、左下角、右下角的半径值,
设置了半径值,相应的角就是圆角,半径值越大,圆角就越大。
设置边界属性,如边界的宽度、颜色等



RecyclerView没有调用onCreateViewHolder()和onBindViewHolder()的可能原因???????
https://blog.csdn.net/An_Times/article/details/54632212
RecyclerViewAdapter的几个抽象方法没有执行,原来原因是getItemCount()的返回值为零,只有大于零时才会加载



RecyclerView 多条数据却只显示一条数据??????
https://blog.csdn.net/MrZhugang/article/details/77502967
解决过程: 首先检查数据是否错误,通过在RecyclerView.Adapter#getItemCount 中 打印对应数据的 size
发现数据个数正常,排出数据本身的问题;那么再去打印 RecyclerView.Adapter#onBindViewHolder 发现这个方法只调用了一次。
说明当前视图只需要显示一个Item,可是明明需要显示多个啊,那么原因就只有一个了,一个Item把整个视图占用。那么解决方案就不言自明了:
检查对应的 Item根布局属性,如果你用了 match_parent, 修改成wrap_content



CollapsingToolbarLayout布局中的子空间如果未加如下属性,则子控件的点击事件会无法响应
app:layout_scrollFlags=“scroll|exitUntilCollapsed|snap”



TextView给部分文字设置点击事件,采用ClickableSpan方式实现时,如果点击的
文字是最后的一部分文字,则会出现,即使点击的是TextView最后的部分文字以外的空白
处,依然会响应点击事件,这与只是点击指定的部分文字响应点击事件的需求不符,
经过测试,如果在Textview的最后一部分文字后面再加上任何未添加任何效果的文字
后,点击textview的最后一部分的文字以外的区域,点击事件就不响应了.



关于drawable shape中,设置了stroke的颜色后,如果不设置strokeWidth,则不会显示,这个小问题,坑了2个小时



Android Gradle插件(plugin)版本(version)与Gradle、SDK Build Tools版本关系
https://blog.csdn.net/u012964796/article/details/51159554



android RelativeLayout设置其属性wrap_content后,为什么显示的布局还是撑满全屏??????
检查你的layout文件中,有其他元素 ,textview 等形式的元素 内容你设定了为 fill_parent



android webview 加载的html中嵌套了ajax异步请求,这些ajax请求,通过断点调试,发现这些ajax请求的url中是携带了cookie的,但是
通过抓包发现,这些请求中,没有cookie,这个问题的导致,是因为 Android 5.0及以上版本使用WebView不能存储第三方Cookies
解决方案
http://www.cnblogs.com/renhui/p/6606816.html

android webview H5开发若干问题之问题二:cookie问题
https://blog.csdn.net/xiaoyunchengzhu/article/details/51462931



部分手机WebView无法成功同步Cookie问题的解决方案
最近开始做app混合开发的项目,故webview成为至关重要的一块。前不久,突然发现有些手机在进行登录的时候,始终提示验证码错误,抓包之后得知,
cookie并未同步进webview而导致验证码错误的问题。
经过排查分析,发现不能登录的手机的共同点为他们均为5.0以上系统,最后通过查找5.0以上系统的api文档,发现5.0以上版本的webview做了较大的改动,
如:同步cookie的操作已经可以自动同步、但前提是我们必须开启第三方cookie的支持。
解决方法如下:
CookieManager cookieManager = CookieManager.getInstance();
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
{
cookieManager.setAcceptThirdPartyCookies(webView,true);
} else {
cookieManager.setAcceptCookie(true);
}



editText空间设置dawable为背景,如果editText的高度固定,会导致上下的边框不显示?????
解决的方案是:将固定的高度设置成wrap_content



android学习笔记之ImageView的scaleType属性
https://blog.csdn.net/u012702547/article/details/50586946



git冲突解决
https://www.cnblogs.com/juandx/p/5362723.html
Git版本控制:Git冲突解决 相关错误总结
git冲突内容
其中Updated upstream 和=====之间的内容就是pull下来的内容,====和stashed changes之间的内容就是本地修改的内容。碰到这种情况,
git也不知道哪行内容是需要的,所以要自行确定需要的内容。解决完成之后,就可以正常的提交了。



Git版本控制:Git冲突解决 相关错误总结
https://blog.csdn.net/pipisorry/article/details/48050377



toolbar 代码设置背景色总是报 ndroid.content.res.ResourcesKaTeX parse error: Expected 'EOF', got '#' at position 32: …n: Resource ID #̲0xff00c8aa的异常 ?…NotFoundException: Resource ID #0xff00c8aa 的异常



ToolBar 修改navigation icon的padding值
修改padding值,就需要在style.xml中修改;在此我们修改的是navigation的pading值:
解决方法:
1.定义style


3.Toolbar在布局文件中的属性设置

    



参考:Android - toolbar 优化 title修改边距和navigation icon修改padding值
https://blog.csdn.net/LABLENET/article/details/51260059



jarsigner对未签名的apk进行签名
https://blog.csdn.net/wuxifu001/article/details/50205531
如果最后提示,无法创建app,也可能是当前目录下写文件需要管理员权限,把签名的apk生成到其他地方就好



java 使用DecimalFormat进行数字的格式化实例详解
https://www.cnblogs.com/finsky/p/8012017.html
//占位符可以使用0和#两种,当使用0的时候会严格按照样式来进行匹配,不够的时候会补0,而使用#时会将前后的0进行忽略



error[26,13] install repository and sync project
出现以上提示,并且点击install repository and sync project 链接时,没反应,在项目的根目录下的build.gradle文件中,添加
maven {
url “https://maven.google.com”
}



Failed to resolve:com.android.support:appcompat-v7:报错处理
Error:(26, 13) Failed to resolve: com.android.support:appcompat-v7:28.+
解决方案是:点击studio的 Install…让android studio自动去下载扩展包的sdk tool,如果点击这个链接没反应,则需要
在项目的根目录下的build.gradle文件中,添加
allprojects {
repositories {
jcenter()
maven{
url “https://maven.google.com”
}
}
参考:https://blog.csdn.net/qq_26684469/article/details/81267321



关于Field map contained null value for key ‘projectId’…
Field map contained null value for key ‘userid’… 等问题的复现
原因是:查了官方更新日志才知道,retrofit 2.0以后Field 和FieldMap的入参都不允许为null,否则就会出现这个异常
参考资料:https://blog.csdn.net/you__are_my_sunshine/article/details/84033702



源码查看网站
http://androidxref.com/
如何使用上面的网站查看源码
https://mp.weixin.qq.com/s?__biz=MzIxNjc0ODExMA==&mid=2247484741&idx=1&sn=69215d5b524ffb352ad96b8301a91b8f&chksm=97851c64a0f295725d9177cd6ee4422330c9a2184cf842fe06db84fa5aadbf1e2189ba77ec00#rd



Attribute “layout_anchorGravity” already defined with incompatible format.
解决方案:去除第三方依赖中和当前项目中重复的依赖
参考:去除第三方库对support的依赖的代码如下
https://blog.csdn.net/lihexiang2012/article/details/80800746



关于在android studio submodule中添加module的问题?
可以在libs项目中添加module,在更新依赖了libs这个项目的工程。



如果项目中引入了比较多的第三方库,那么当我们升级第三方库或者引入新的第三方库时,就会冲突。
那么我们就需要准确的找到冲突的两个库才能用exclude排除依赖
Android Studio查看第三方库依赖树的命令
gradlew -q :app:dependencies --configuration compile



解决支持库版本兼容问题:引入包时候support包有红色下划线???
解决方案:
//强制让所有模块都用相同的支持库版本
在android这个闭包下,添加如下代码
configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
def requested = details.requested
if (requested.group == ‘com.android.support’) {
if (!requested.name.startsWith(“multidex”)) {
details.useVersion ‘27.1.1’
}
}
}
}
参考:https://my.oschina.net/u/3734228/blog/2877636



Error:Gradle: Execution failed for task ‘:app:transformClassesWithDexForCeshiDebug’.

com.android.build.api.transform.TransformException:
com.android.ide.common.process.ProcessException:
java.util.concurrent.ExecutionException:
com.android.dex.DexException: Multiple dex files define Landroid/arch/lifecycle/LiveData;
报错的解决方案:
将 compile “android.arch.lifecycle:runtime:1.0.0”
compile “android.arch.lifecycle:extensions:1.0.0”
annotationProcessor “android.arch.lifecycle:compiler:1.0.0”
的版本号改成1.1.0



Android使用gradle依赖管理、依赖冲突终极解决方案
https://blog.csdn.net/u012184539/article/details/83592214



Gradle依赖树查看
https://www.jianshu.com/p/8b5c7ae42918



Duplicate files copied in APK META-INF/proguard/androidx-annotations.pro
解决方案:
在 app的Gradle中添加:
defaultConfig {

packagingOptions {
exclude ‘META-INF/proguard/androidx-annotations.pro’
}
}
参考:https://blog.csdn.net/wa172126691/article/details/84863171



android studio 中,生成了.hprof文件时,如果点击captures文件夹,里面未显示保存的.hprof文件的问题?????
解决方案:可以通过View > Tools Windows > Captures,打开caputres窗口,或者在主窗口打开captures窗口,这样就可以
看到保存的.hprof文件了。
参考:Android Studio - HPROF文件查看和分析工具 https://www.cnblogs.com/xgjblog/p/6084388.html



java中内部类为什么持有外部类的引用????
解决方案:写一个外部类,里面写一个内部类,在将这个外部类编译一下,生成一个class文件,然后,将
这个class文件通过jd-gui字节码反编译工具打开,查看反编译后的文件,就明白了,内部类的构造
函数中,是持有外部类的引用的。
参考:java中内部类为什么会持有外部类的引用? https://www.cnblogs.com/wenjianes/p/9957946.html



在Java语言里,可作为GC Roots的对象包括下面几种:
虚拟机栈(栈帧中的本地变量表)中的引用的对象。
方法区中的类静态属性引用的对象。
方法区中的常量引用的对象。
本地方法栈中JNI(即一般说的Native方法)的引用的对象。



关于java中内存地址的获取的方式???????
解决方案:Object类的hashCode()方法,默认是返回内存地址的,但是如果某些类继承了Object,重写了hashCode()方法,则
hashCode()方法返回的值就不一定是内存地址了,要想准确获取对象的内存地址,需要使用System.identityHashCode(Object)
方法获取对象的内存地址。
参照:java打印内存地址 https://blog.csdn.net/daijiguo/article/details/79717394



java.util.zip.ZipException: duplicate entry: org/apache/commons/io/CopyUtils.class
https://www.e-learn.cn/content/wangluowenzhang/1752986
https://stackoverflow.com/questions/38706550/gradle-build-failed-java-util-zip-zipexception-duplicate-entry-org-apache-com
https://stackoverflow.com/questions/43017925/errorexecution-failed-for-task-java-util-zip-zipexception-duplicate-entry-o



getRealMetrics()和getMetrics()的区别???
https://xiaoyaozjl.iteye.com/blog/2178415
getRealMetrics()和getMetrics()获取到的屏幕信息差别只在于widthPixels或heightPixels的
值是否去除虚拟键所占用的像素,和是否全屏和沉浸模式无关



android studio 中进行monkey测试
在terminal窗口中,输入
adb shell monkey -p com.xywy.xyb -v 2000
-p开关告诉monkey将随机事件限定在包名为com.xywy.xyb的应用
-v开关告诉monkey尽可能的详尽汇报事件和异常
最后一个2000是事件的数量,2000个随机事件,应该能够暴力ui中的所有问题,并且你随时都可以再次运行此命令。



因为这个安卓尺寸是最大的,可以往下适配其他机型。
设计尺寸:1080 * 1920px(XXHDPI)
也就是相当于ios系统当中的@3x的图片资源。
提供一套XXHDPI切图资源。其他密度不需要提供,让系统自适配。



Android 屏幕适配:最全面的解决方案
https://www.jianshu.com/p/ec5a1a30694b



安卓APP设计规范(三)1080*1920设计稿对应开发尺寸
https://blog.csdn.net/zx_android/article/details/53117206



Android常见分辨率(mdpi、hdpi 、xhdpi、xxhdpi )尺寸单位转换和屏幕适配相关
https://blog.csdn.net/fumeidonga/article/details/50999977



android 常见分辨率(mdpi、hdpi 、xhdpi、xxhdpi )及屏幕适配注意事项
https://blog.csdn.net/sarsscofy/article/details/9249397



常用各个手机屏幕分辨率归纳。iphone5/iphone7/iphone7 plus/iphoneX/Android 分辨率大小归纳
https://blog.csdn.net/China_Guanq/article/details/79728533



Android开发:最全面、最易懂的Android屏幕适配解决方案
https://blog.csdn.net/wangwangli6/article/details/63258270



修改ToolBar的标题、子标题字体大小和颜色,toolbar menu字体的大小和颜色以及注意事项
https://blog.csdn.net/zaq977684/article/details/81979984




android retrofit End of input at line 1 column 1 path
https://blog.csdn.net/chichengjunma/article/details/78906892



Retrofit 用response.body().string()的方式输出日志注意事项
https://www.jianshu.com/p/61539da31e0a



解决okhttp的java.lang.IllegalStateException: closed错误
https://blog.csdn.net/weixin_34138521/article/details/86444021



最强 Android Studio 使用小技巧和快捷键
https://www.cnblogs.com/Seachal/p/5591600.html



IllegalArgumentException: LinearLayoutManager is already attached to a RecyclerView
https://stackoverflow.com/questions/30528206/layoutmanager-is-already-attached-to-a-recyclerview-error



高度随内容动态改变的ViewPager
https://www.jianshu.com/p/14389b125390
DynamicHeightViewPager



Android布局文件,include使用之后,你真的了解吗?
https://blog.csdn.net/yztbydh/article/details/80569367



Android软键盘(五)如何判断软键盘是否显示
https://blog.csdn.net/sinat_31311947/article/details/53899166



popupwindow弹出,窗口变暗
https://www.cnblogs.com/lushiju/p/5385949.html
context.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);



Android Studio中出现PSI and index do not match的错误的解决办法
https://www.jianshu.com/p/6926e6350471



Android 6.0及以上版本的运行时权限介绍
https://blog.csdn.net/pjdd123/article/details/81358409



友盟分享上增加自定义分享平台
https://www.jianshu.com/p/8bc9b7705e66



Android中友盟第三方登录与分享自动集成的那些坑
https://blog.csdn.net/apro_wang/article/details/79923526?utm_source=blogxgwz7



6.9.4版本启用gradle在线依赖新坐标
https://developer.umeng.com/docs/66632/detail/98697



android四周阴影效果
Android项目实战(三十六):给背景加上阴影效果
https://www.cnblogs.com/xqxacm/p/7798851.html



Glide - 缓存基础
https://mrfu.me/2016/02/27/Glide_Caching_Basics/



Glide使用入门,设置全局默认加载图.
https://www.jianshu.com/p/5b719007d634



LayoutAnimation
LayoutAnimationController
RecyclerView系列之六:item动画效果
https://www.jianshu.com/p/b375d552db63


Android View Animations
https://github.com/daimajia/AndroidViewAnimations



使用LayoutAnimationController为RecyclerView添加动画
https://www.jianshu.com/p/c15da8dee02f



Android开源之ILayoutAnimationController,1行代码让你的ViewGroup拥有华丽的布局动画!
https://www.jianshu.com/p/f0e563a564f5



glide4.0以上在Android9.0以上加载图片不显示解决方案
https://www.jianshu.com/p/2d3ee756a9bf



AndroidManifest.xml 不同变量的作用(持续更新)
https://blog.csdn.net/wangjicong_215/article/details/72897240



ViewPager取消切换动画
https://blog.csdn.net/pyfysf/article/details/78695637
ViewPager禁止滑动切换和去除切换时动画效果
https://blog.csdn.net/zhang___yong/article/details/78019075


友盟微信登录不回调可能的情况:??????????????????
WXEntryActivity这个类的路径问题



MagicIndicator选中后字体样式
https://blog.csdn.net/mr_lichao/article/details/93193326



Android中ViewPager+Fragment取消(禁止)预加载延迟加载(懒加载)问题解决方案
https://blog.csdn.net/linglongxin24/article/details/53205878



You need to use a Theme.AppCompat theme (or descendant) with this activity.
https://blog.csdn.net/u013694478/article/details/79468952



android手势操作&&实现滑动切换activity
https://blog.csdn.net/qq_34107153/article/details/78259450



【多张图片时,圆角处理不一致】Glide 加载圆角图片大小不一的问题
https://blog.csdn.net/Jason_996/article/details/83060940



Glide加载圆形图片 自定义圆角 和对指定角加载圆角
https://download.csdn.net/download/shanshan_1117/10259431
scaleType=“matrix” 是保持原图大小、从左上角的点开始,以矩阵形式绘图。
scaleType=“fitXY” 是将原图进行横方向(即XY方向)的拉伸后绘制的。
scaleType=“fitStart” 是将原图沿左上角的点(即matrix方式绘图开始的点),按比例缩放原图绘制而成的。
scaleType=“fitCenter” 是将原图沿上方居中的点(即matrix方式绘图第一行的居中的点),按比例缩放原图绘制而成的。
scaleType=“fitEnd” 是将原图沿下方居中的点(即matrix方式绘图最后一行的居中的点),按比例缩放原图绘制而成的。
scaleType=“Center” 是保持原图大小,以原图的几何中心点和ImagView的几何中心点为基准,只绘制ImagView大小的图像。
scaleType=“centerCrop” 不保持原图大小,以原图的几何中心点和ImagView的几何中心点为基准,只绘制ImagView大小的图像(以填满ImagView为目标,对原图进行裁剪)。
scaleType=“centerInside” 不保持原图大小,以原图的几何中心点和ImagView的几何中心点为基准,只绘制ImagView大小的图像(以显示完整图片为目标,对原图进行缩放)。



Android沉浸式(透明)状态栏适配
https://www.jianshu.com/p/a44c119d6ef7



关于SwipeBackLayout的使用以及那些坑
https://www.jianshu.com/p/7660bd03a930?from=jiantop.com
// 设置滑动方向,可设置EDGE_LEFT, EDGE_RIGHT, EDGE_ALL, EDGE_BOTTOM
mSwipeBackLayout.setEdgeTrackingEnabled(SwipeBackLayout.EDGE_LEFT);
// 滑动退出的效果只能从边界滑动才有效果,如果要扩大touch的范围,可以调用这个方法
//mSwipeBackLayout.setEdgeSize(200);



Manifest merger failed with multiple errors, see logs问题处理
https://blog.csdn.net/u013370255/article/details/80107124



Android Studio编译错误:Suggestion: use tools:overrideLibrary=“xxx.xxx.xxx” to force usage
https://blog.csdn.net/jeek_job/article/details/52301239



解决Android Studio编译后安装apk报错:The APK file does not exist on disk
https://blog.csdn.net/ouyang_peng/article/details/51243441

the apk file does not exist on disk. error while installing apk
https://blog.csdn.net/tuzhao/article/details/77075228



android中设置TextView的值\n不起作用
https://blog.csdn.net/u012483116/article/details/73800248




fiddler url匹配的正则表达式规则
3、正则匹配

1)前缀为“EXACT:”表示完全匹配(大小写敏感):

只有match=rules时,才匹配

2)无前缀表示基本搜索,表示搜索到字符串就匹配:

只要match中包含了rules的字符串,即可

3)前缀为“NOT:”表示发现就不匹配:

与无前缀的基本搜索同理,只是发现了就不匹配,其他默认匹配

4)前缀为“REGEX:”表示使用正则表达式匹配:

.+ 匹配一个或多个字符,如regex:.+jpg 包含有jpg字符串且以jpg字符串结尾的,即可匹配

.* 匹配0个或多个字符,如regex:.+.jpg.*包含有.jpg字符串即可匹配

^ 匹配字符串开始位置

$ 匹配字符串结束位置,如regex:.+.(jpg|gif|bmp)$包含以jpg或gif或bmp字符串结尾的,即可匹配

如regex:(?insx).+.(jpg|gif|bmp)$ 包含以jpg或gif或bmp字符串结尾的,不区分大小写,且是单行的,即可匹配

5)前缀为“REGEX:(?insx)”表示匹配方式其中:
i表示不区分大小写;
n表示指定的唯一有效的捕获是显式命名或编号的形式;
s表示单行模式;
x表示空格说明的;




java.lang.NoSuchFieldError: No static field xxx of type I in class Lcom/XX/R$id; or its superclasses
或者findViewById(R.id.toolbar)总是返回null
https://blog.csdn.net/u011163115/article/details/52333835



build.gradle ext
build.gradle rootProject
理解根目录下的build.gradle
https://www.jianshu.com/p/c9ec9e2a506e



深入理解Android之Gradle
https://blog.csdn.net/innost/article/details/48228651



Gradle脚本基础全攻略
https://blog.csdn.net/yanbober/article/details/49314255



Gradle for Android(二)全局设置、自定义BuildConfig
https://www.cnblogs.com/xinmengwuheng/p/5797048.html



build.gradle常见配置方式
https://blog.csdn.net/magic825301279/article/details/54293143



读取local.properties文件
https://www.jianshu.com/p/93956dee4ebf



PopupWindow中显示ListView时自适配窗口大小
https://blog.csdn.net/zgyulongfei/article/details/7973063

Android ListView在PopupWindow里时wrap_content无效
https://blog.csdn.net/RichieZhu/article/details/51580166

Android PopupWindow 疑难杂症之宽度WRAP_CONTENT
https://www.imooc.com/article/details/id/4212



Android之自定义 ActionBar 上的菜单(Menu)文字颜色
https://blog.csdn.net/u011068702/article/details/50060559

Toolbar修改MenuItem字体颜色及布局
https://blog.csdn.net/moon_nife/article/details/72731166

Android 更改ActionBar OptionsMenu中字体颜色
https://blog.csdn.net/jayyuz/article/details/55260996

Andorid Toolbar里的Menu的Item的View的获取
https://blog.csdn.net/u010607467/article/details/50354999

Android MenuItem 设置文字颜色-TextColor的设置
https://blog.csdn.net/u012565107/article/details/24267153

Android中设置Menu菜单的文字颜色为白色
http://tieba.baidu.com/p/3733476409



Android用命令行查看手机架构
adb shell getprop ro.product.cpu.abi
查看该手机支持的全部架构,则输入:
adb shell getprop ro.product.cpu.abilist


app 退出到后台,点击图标后再次重新启动的原因,以及解决方案
由于LoginActivity的启动模式是singleTask,并且是程序的入口,
当启动了app,进入到任意一个子页面,如果将app切换到后台,在次点击app的icon,此时会在次启动LoginActivity,由于LoginAcvity的启动模式是singleTask,则会将任务栈中位于LoginActivity之上的的activity全部finish,让自己处于栈顶,所以,这是看到的页面不是之前切换到后台时的页面,而是启动页面,为了避免这个问题,在LoginActivity中,加入如下处理逻辑。
// 避免从桌面启动程序后,会重新实例化入口类的activity

if (!this.isTaskRoot()) { // 当前类不是该Task的根部,那么之前启动
   Intent intent = getIntent();
   if (intent != null) {
      String action = intent.getAction();
      if (intent.hasCategory(Intent.CATEGORY_LAUNCHER) && Intent.ACTION_MAIN.equals(action)) { // 当前类是从桌面启动的
         finish(); // finish掉该类,直接打开该Task中现存的Activity
         return;
      }
   	}
}
setContentView(R.layout.activity_login);

你可能感兴趣的:(android,android,bug)