Android踩过的坑
倚栏静望
让Bug呆一会儿
展开
-
Gradle Could not resolve org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.3.72.
问题Build file '/Users/******/****/android/golf/android/app/build.gradle' line: 26* What went wrong:A problem occurred evaluating project ':app'.> Could not resolve all artifacts for configuration 'classpath'. > Could not resolve org.jetbrains.原创 2022-05-17 23:25:39 · 9105 阅读 · 21 评论 -
Apps targeting Android 12 and higher are required to specify an explicit value
g/AndroidManifest.xml Error: android:exported needs to be explicitly specified for element <activity#.MainActivity>. Apps targeting Android 12 and higher are required to specify an explicit value for `android:exported` when the corresponding compone原创 2022-05-02 16:19:18 · 5981 阅读 · 0 评论 -
Android WebView加载Html 解决图片自适应屏幕宽度问题
开发中,经常需要加载html数据,当html中的各个元素宽高都已经设置好了的情况下,我们可以直接用WebView加载,但是也有时候html各个标签的宽高是不正常的,特别是图片,因此怎么处理图片宽高是一个难题,经过多年采坑的经验,以下这种方式是最有效的: val head = "<head>" + "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, u原创 2021-10-18 17:18:22 · 1813 阅读 · 0 评论 -
Kotlin butterknife build error @BindView fields must not be private or static
问题描述:在kotlin中使用Butterknife时出现:@BindView fields must not be private or static.解决办法,在注解上加上 @JvmField,如下: @JvmField @BindView(R2.id.top_title) var topTitle: TextView? = null即可解决...原创 2020-10-04 09:32:31 · 1568 阅读 · 0 评论 -
Cannot access androidx.lifecycle.HasDefaultViewModelProviderFactory
报错“Cannot access androidx.lifecycle.HasDefaultViewModelProviderFactory” 可正常运行解决方法:添加库:implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'implementation 'androidx.lifecycle:lifecycle-runtime:2.2.0'或者更新androidx.appcompat:appcompat: imple原创 2020-09-29 21:30:58 · 2362 阅读 · 0 评论 -
EventBus post一次事件接收到多次处理办法
最近在项目中用到了EventBus3.x 在使用的过程中 在Fragment中使用EventBus出现一个事件被多次接收的问题,在代码执行过程中发现post一次时 我的接收事件逻辑走了两次 ,经过查找各种资料 ,解决方案如下:确保注册的时候没有重复注册 , 重复注册可能导致存在多个此类对象可能导致重复多次的接收解决方案 1 : 在注册时 判断如果已经注册则不注册 代码如下 if (!EventBus.getDefault().isRegistered(this)) { Ev原创 2020-08-31 23:04:41 · 6396 阅读 · 0 评论 -
Flutter--Android resource linking failed报错解决
一个依赖引发的血案啊……我其实啥都没干,之前一直运行的好好的,这是在flutter中新加了一个插件,然后程序就炸了……FAILURE: Build failed with an exception.* What went wrong:Execution failed for task ':app:processDebugResources'.> Android resource ...原创 2020-03-18 09:50:13 · 5549 阅读 · 2 评论 -
Android EditText 实现软键盘搜索按钮
把软键盘的回车按键变成搜索按键有以下两种方式1.在代码中控制: etKeyword.setSingleLine(); etKeyword.setLines(1); etKeyword.setImeOptions(EditorInfo.IME_ACTION_SEARCH);2.在xml中添加如下: <EditText ...原创 2020-02-21 11:34:50 · 1753 阅读 · 0 评论 -
Android 在TextView中设置多个样式多个点击事件
类似如下图功能:有时候我们可以用多个TextView来实现,但是没法实现这种换行的,而且使用多个TextView性能上也有损耗,在Android中系统为我们提供了一个解决办法。就是使SpannableStringBuilder+ClickableSpan来实现。具体实现代码如下: String str = "阅读完整的《用户服务协议》和《隐私政策》了解详细内容"; Sp...原创 2020-02-05 23:33:58 · 1864 阅读 · 0 评论 -
Android Q(10) 拍照问题
Android Q官方文档AndroidQ新增的分区存储Android Q文件存储机制修改成了沙盒模式,和IOS神似应用只能访问自己沙盒下的文件和公共媒体文件对于Android Q以下,还是使用老的文件存储方式权限变更Android Q 更改了应用对设备外部存储设备中的文件(如:/sdcard )的访问方式。继续使用 READ_EXTERNAL_STORAGE 和 WRITE_EX...原创 2020-02-05 15:17:18 · 2468 阅读 · 0 评论 -
Flutter 更新后本地插件报错:Couldn't read file LocalFile: "***/***.kt" even though it exists!
先说一下报错Flutter版本:Stable channel v1.12.13+hotfix.5报错问题同:Running "flutter pub get" in push_plugin... 0.2sRunning "flutter pub get" in example... 0.3...原创 2020-01-09 00:10:30 · 3211 阅读 · 0 评论 -
android点击软键盘外面的区域关闭软键盘解决办法
很多时候在一个页面有多个输入框或者输入框加选择框的时候,我们需要根据用户的点击去关闭软键盘。在Activity中加入以下代码即可 /** 重写dispatchTouchEvent * 点击软键盘外面的区域关闭软键盘 * @param ev * @return */ @Override public boolean dispatchT...原创 2019-10-22 23:24:59 · 1791 阅读 · 0 评论 -
集成ButterKnife OnClick事件无响应问题
在使用ButterKnife module中的build加上: annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0'这里不能跨module添加改依赖。具体原因我也不清楚……原创 2019-09-19 23:47:00 · 1629 阅读 · 5 评论 -
Android端RSA加密,后端无法解密的情况
原因是因为,加密标准:“RSA/ECB/PKCS1Padding” 与’RSA", 在Android中应该使用这个标准Cipher cipher = Cipher.getInstance(“RSA/ECB/PKCS1Padding”);在服务端使用这个标准Cipher cipher = Cipher.getInstance(“RSA”);因此Android端加密应使用Cipher cip...原创 2019-09-12 14:08:02 · 1672 阅读 · 1 评论 -
Flutter 解决 MissingPluginException(No implementation found for method xxx on channel xxx)
MissingPluginException(No implementation found for method xxx on channel xxx)这个错误出现的原因是Plugin的方法没有找到,也可能是Plugin本身就没有注册成功。经常是退出APP的后重新进入就会出现这个问题。网上有很多解决办法:方案一:flutter clean一下,再次 flutter run/build...原创 2019-08-01 23:40:39 · 54615 阅读 · 3 评论 -
解决 scrollview嵌套recyclerview 中不能滑动,recyclerview高度不正常的问题。
日常开发中经常会用到scrollview中嵌套recyclerview。有时候会出现:滚动的时候scrollview会不滚动,出现recyclerview的布局往上滚动出现被遮挡的现象,之前使用:public class FullyLinearLayoutManager extends LinearLayoutManager { private boolean isScrollEnab...原创 2019-07-17 00:39:00 · 2773 阅读 · 0 评论 -
Flutter 打包apk后运行错误:couldn't find "libflutter.so"
FLutter 在使用命令:flutter build apk打包或者是用Android Studio直接打包如果so配置错误会出现以下问题:java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.cgmcomm.cgmstore-zq4F04l4...原创 2019-07-11 21:10:07 · 5152 阅读 · 0 评论 -
canvas 调用方法在api28上报错 :Invalid Region.Op - only INTERSECT and DIFFERENCE are allowed
java.lang.IllegalArgumentException: Invalid Region.Op - only INTERSECT and DIFFERENCE are allowed at android.graphics.Canvas.checkValidClipOp(Canvas.java:779) at android.graphics.Canv...原创 2019-06-25 00:10:32 · 2460 阅读 · 3 评论 -
Android动态修改icon、APP名称
之所以有这个需求,完全就是因为软著上写错名字了,如果APP名称跟软著不一致,还不能上架……提醒以后申请软著的童鞋,一定要注意名称的问题下面贴实现代码: <application android:name=".application.ExceptionApplication" android:allowBackup="true" an...原创 2019-06-17 22:38:06 · 3952 阅读 · 0 评论 -
Android解决View滑动冲突
常见的滑动冲突场景1.外部滑动方向和内部滑动方向不一致2.外部滑动方向和内部滑动方向一致3.以上两种嵌套原创 2017-12-11 14:06:02 · 3729 阅读 · 0 评论 -
解决 Android N 7.0 上 报错:android.os.FileUriExposedException
解决在Android N7.0以上的版本 使用相机出现 android.os.FileUriExposedException: file:///storage/emulated/0/cashmere/Cache/IMG_20180104_134824.png exposed beyond app through ClipData.Item.getUri() 错误具体解决方案:1.在原创 2018-01-04 15:14:55 · 3946 阅读 · 0 评论 -
android 设置全屏
/** * 设置是否全屏 * @param enable */ private void setFullScreen(boolean enable) { WindowManager.LayoutParams lp = getWindow().getAttributes(); if (enable) { l原创 2018-01-22 10:53:40 · 2301 阅读 · 0 评论 -
解决在Android 7.0上PopupWindow.showAsDropDown不起作用的问题
用以下代码: if (Build.VERSION.SDK_INT < 24) { popupWindow.showAsDropDown(view); } else { int[] location = new int[2];原创 2018-01-09 15:51:03 · 3817 阅读 · 2 评论 -
Rxjava+Retrofit组合问题
今天用Rxjava+Retrofit做为新项目的网络框架遇到了一个问题之前在另一个项目中:new Builder().baseUrl(IP_URL).client(client).addConverterFactory(FastJsonConverterFactory.create()).addCallAdapterFactory(RxJava2CallAdapterFactory.cr...原创 2018-02-26 16:58:19 · 3001 阅读 · 0 评论 -
分享出去的页面打开APP并且调到指定的页面
那么用户点击到此类链接时,会自动唤醒APP,借助于URL Router机制,则还可以跳转至指定页面。原创 2018-04-28 10:32:36 · 3240 阅读 · 0 评论 -
Android Studio打包APK时出现 is not translated in "en" (English) [MissingTranslation]
错误信息:Error:(16) Error: "alivc_error_msg" is not translated in "en" (English) [MissingTranslation]Error:(63) Error: "alivc_error_code" is not translated in "en" (English) [MissingTranslation]Error:(67)...原创 2018-07-11 14:08:25 · 745 阅读 · 0 评论 -
Only fullscreen opaque activities can request orientation----Android8.0的又一个坑
今天用8.0测试项目出现了:java.lang.IllegalStateException: Only fullscreen opaque activities can request orientation原因是项目中有一个Activity是可以旋转的,在Activity的styles中设置了<item name="android:windowIsTranslucent">false...原创 2018-07-06 18:01:24 · 445 阅读 · 0 评论 -
Android软键盘弹出,界面整体上移终极解决方式
今天在应测试要求:软键盘弹出不能遮挡EditView,在网上找了各种方案,基本都不行,比如:android:windowSoftInputMode=“adjustResize|stateHidden”可能在一般的页面是可以用吧。下面来说一个曲线救国的方案,先发一下UI测试要求,在输入技术方案的时候软键盘不能遮挡布局,原来是用的ScrollView嵌套的,但是各种方案都不能满足测试大大的要...原创 2018-10-30 10:07:17 · 9826 阅读 · 0 评论 -
AndroidStudio3.X 注解报错Annotation processors must be explicitly declared now.
最近在使用AndroidStudio3.X的版本维护之前的项目的时候,发现项目的butter knife报错: Error:Execution failed for task ':app:javaPreCompileDebug'.> Annotation processors must be explicitly declared now. The following dependen...原创 2019-01-03 22:18:23 · 838 阅读 · 0 评论 -
Android工程方法数超过65535解决方式
在现在的开发中,项目中由于导入大量的第三方框架,工程的方法数很容易就超过65535Error:Execution failed for task ':ttt:transformClassesWithDexForDebug'.com.android.build.api.transform.TransformException: com.android.ide.common.process.Pro...原创 2019-02-14 21:27:59 · 550 阅读 · 0 评论 -
Android中Activity、Service、Broadcast,相应超时时间
之前遇到过一个面试,就是三大组件报ANR的最大时长,当时愣了一下,我知道Activity是5秒,Service是20秒,广播用到少,没怎么去研究过,后面查资料才知道是10秒:Activity->5秒Service->20秒Broadcast->10秒超过这个时间主线程就会报ANR。...原创 2019-02-28 15:13:55 · 1339 阅读 · 0 评论 -
主线程中的Looper.loop()一直无限循环为什么不会造成ANR?
最近在面试,Android中Handler相关的面试题问到的几率大概有百分之百的样子……有一个问题是这样的,就是在主线程中使用Handler来处理异步,由于Handler中Looper.loop()在没有Message的时候是阻塞状态,但是为什么没有造成ANR呢?大家都知道造成ANR的原因有以下两点:1.当前的事件没有机会得到处理(即主线程正在处理前一个事件,没有及时的完成或者looper被某...原创 2019-03-27 15:47:07 · 1332 阅读 · 1 评论 -
Android解决由scheme导致APP图标消失问题
在通过html跳转APP时需设置scheme,在html中添加跳转:window.location.href = “openapp://”; 但是在打包安装后出现了APP图标消失问题,是由于同一个intent-filter设置了多个category的原因,解决方法,分两个intent-filter即可: <activity android:name=".MainActivity"&...原创 2019-04-08 23:11:06 · 2032 阅读 · 0 评论 -
Android 9.0 https适配问题
在Android9.0中,谷歌要求默认使用加密连接,这意味着 Android P 将禁止 App 使用所有未加密的连接,因此运行 Android P 系统的安卓设备无论是接收或者发送流量,未来都不能明码传输,需要使用下一代(Transport Layer Security)传输层安全协议,而 Android Nougat 和 Oreo 则不受影响。为了继续在使用http协议,那么要么是降低tar...原创 2019-06-12 15:16:02 · 3291 阅读 · 0 评论 -
Android Q(10.0)版本新特性以及兼容性适配
北京时间2019年3月14日Google正式对外发布Android Q Beta 1及预览版SDK,这意味着安卓开发者们又即将迎来一年一度的新版本适配工作了。Android Q 为开发者们带来了许多新功能,如折叠屏增强项、新网络连接 API、全新的媒体解码器、摄像头新功能、NNAPI 扩展、Vulkan 1.1 图形支持等等。按往常的习惯,新版本刚出怎么着也得到下半年才开始考虑适配,但是上月末的...原创 2019-06-04 13:24:41 · 8015 阅读 · 2 评论 -
android studio导入eclipse项目报错 Error: Some file crunching failed, see logs for details
最近开始在项目中全面的使用Android Studio,之所以不再使用eclipse,首先adt不再更新,所以没有办法使用最新的sdk,再者eclipse构建项目很难解决方法数超标的问题,然后就是目前主流的项目都不再使用eclipse进行开发,导致从网上下载下来的一些demo没有办法在eclipse直接运行。 近日在进行之前的老项目转AS,然后就杯具了…… andro原创 2017-09-15 23:46:30 · 4949 阅读 · 0 评论