
android问题解决方案
龚礼鹏
更多免费垃圾内容见微信公众号:龚礼鹏。Android应用架构师、AndroidFramework工程师、OpenHarmony应用开发工程师、OpenHarmony Framework工程师、flutter开发工程师,擅长用java、kotlin、arkts、c++、dart写hello world
展开
-
android 各种偶现问题记录
如果第一个b界面启动了c,此时栈中有a c,然后又响应了点击事件,此时栈中就是a c b c,然后由于b启动c然后又调用了finish,所以栈中就是a c c,所以会出现即使c设置了singleTop启动模式也会启动两个c并且都在最上面的情况。根本原因:启动这个activity两次,并且启动他们的那个activity被finish了,所以看出的现象是activity设置了singleTop但是启动两次并且栈最上面两个都是此activity。就是和服务端的交互哈,那就排查和服务端交互相关的即可。原创 2022-09-02 15:02:44 · 698 阅读 · 0 评论 -
软键盘弹出,布局顶上去
在布局的配置文件AndroidManifest中添加android:windowSoftInputMode="adjustResize"并且在需要缩放的layout(比如相对布局,线性布局)中添加android:fitsSystemWindows="true"原创 2016-09-26 17:29:13 · 947 阅读 · 0 评论 -
强制弹出软键盘
InputMethodManager imm = (InputMethodManager) etText.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); imm.toggleSoftInput(0, InputMethodManager.SHOW_FORCED);原创 2016-09-27 16:27:33 · 511 阅读 · 0 评论 -
bindservice返回值问题
在极端的情况下bindservice返回值为true但是可能运行的是onServiceDisconnected方法,所以不能按照bindservice的返回值来判断是否连接成功。通过源码也可以看出bindservice在连接过程中可能会走到onServiceDisconnected方法中。地址:https://blog.youkuaiyun.com/u011386173/article/details...原创 2019-03-21 10:04:14 · 2063 阅读 · 0 评论 -
解决返回按钮与LayoutParams.FLAG_NOT_FOCUSABLE冲突的问题
当window设置了WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE时是接收不到返回事件的,此时如果需求是此window内的事件自己处理,其他事件其他的界面处理,此时可以将WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE改成WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODA...原创 2019-04-24 13:44:58 · 5632 阅读 · 0 评论 -
sdk路径问题
android sdk location should not contain whitespace,as this can cause problems with the NDK tools上述错误是sdk路径有空格,其实sdk路径下不能有空格。原创 2019-06-17 15:56:37 · 1333 阅读 · 0 评论 -
Error:No such property: GradleVersion for class: JetGradlePlugin Consult IDE
上面的错误出现的原因是IDE版本和gradle版本不一致,比如:gradle是5.1.1Androidstudio是3.0则gradle版本太高,Androidstudio版本太低解决方法:如果gradle版本不能降低,则将Androidstudio版本升高我这里是升到3.4.1就没有问题了...原创 2019-06-19 11:54:58 · 4338 阅读 · 0 评论 -
Android Code Generator插件 Invalid byte 2 of 2-byte UTF-8 sequence.
如上问题是因为xml文件里面有中文,将中文去掉即可使用这个插件原创 2019-07-12 18:13:26 · 391 阅读 · 0 评论 -
.gitignore添加忽略文件不起作用
注意:在分支文件中添加.gitinore是没有作用的,需要在主分支中添加,分支文件中的.gitinore没有作用!!!原创 2019-07-23 16:52:59 · 282 阅读 · 0 评论 -
华为手机跳转界面闪一下上一个界面问题
解决方法:在跳转的地方添加overridePendingTransition(0, 0);原创 2019-07-24 18:57:00 · 3067 阅读 · 0 评论 -
安装apk后几次点击HOME按钮再次进入是重新进入闪屏界面而不是上一次停留界面
理论上的流程应该再次进入不会启动闪屏页,实际上流程是可能会进入闪屏页,所以需要在闪屏页做判断,如下所示,如果闪屏页不是在栈的底层时finish。如下在oncreate中添加代码:if (!isTaskRoot) { finish() return}...原创 2019-07-24 19:01:48 · 389 阅读 · 0 评论 -
华为9.0安全键盘导致不能Toast情况修复
当inputType="textPassword"时。在华为9.0手机上Toast不能显示,如下需要做如下两步:1.在配置文件中digits限制其可输入的内容2.在代码中做判断,根据华为9.0机型然后做特殊处理if (ModelUtils.isEMUI() && android.os.Build.VERSION.SDK_INT >= Build.VE...原创 2019-08-03 18:04:22 · 5638 阅读 · 4 评论 -
小米手机下载文件失败,提示权限不足
其他机型可以,小米手机下载失败,提示读写权限不足。然后发现小米需要读写权限都有,和权限组的理论相悖,所以要做如下处理ActivityCompat.requestPermissions(this, new String[]{ Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_...原创 2019-08-03 18:08:53 · 5429 阅读 · 2 评论 -
切换系统语言导致崩溃问题
第一步需要在配置文件的activity中添加配置文件android:configChanges="locale|layoutDirection|keyboard"第二步需要在有dialog.show得地方做一下判断if (loadingDialog != null && !((BaseActivity)mContext).isFinishing()) { l...原创 2019-08-03 18:22:02 · 1399 阅读 · 0 评论 -
padding什么都没问题的情况下出现父布局和子布局中出现padding的效果
如下效果,在布局内明明没有padding出现padding效果原因找了半天,最后发现是父布局中存在android:fitsSystemWindows="true"这个属性导致的,如下图去掉此属性即可,最后效果图...原创 2019-08-07 19:02:49 · 449 阅读 · 0 评论 -
jdk 1.7 优雅的关闭资源
jdk 1.7之前public static void test1(){ FileInputStream ins = null; FileOutputStream out = null; try { ins = new FileInputStream(new File("G://aa.text")); ...原创 2019-08-12 14:12:26 · 736 阅读 · 0 评论 -
ArrayList中数据放在adapter.setData中出现The content of the adapter has changed but ListView did not receive
修复The content of the adapter has changed but ListView did not receive a notification. Make sure the content of your adapter is not modified from a background thread, but only from the UI thread. Make ...原创 2019-08-14 19:20:31 · 831 阅读 · 0 评论 -
android 启动页之前白屏解决方式
如果app没做任何优化,启动页之前会有白屏,优化方式如下:1.写一个自定义的style,继承自AppTheme,如下图:自定义的style如下图2.然后在启动页中引用此此主题如上图所示启动页之前的白屏则会替换成上述的图片,但是放在其他长形的机型上,比如navo 4,会出现图片拉伸的效果,不怎么好看,如下图:所以上图所示就不好看,需要进一步优化,所以在上述...原创 2019-08-16 14:53:14 · 4100 阅读 · 2 评论 -
android 快速修改包名步骤
1.ctrl+shift+r全局替换,上面输入原先的包名,下面输入修改后的包名。2.修改包名文件夹为新的包名文件夹名称。3.清理项目中的缓存数据,然后运行即可,如果不行则第四步。4.关闭androidstudio ,重新打开,然后运行即可。...原创 2019-09-19 14:36:38 · 978 阅读 · 0 评论 -
android 分享文件功能实现
分享功能原理是通过Intent将文件传给其他应用,代码如下:public static void shareFile(Context context, String fileName) { File file = new File(fileName); if (null != file && file.exists()) { ...原创 2019-11-05 10:04:57 · 11228 阅读 · 9 评论 -
android 免root智能辅助无障碍完成自动更新软件流程
原理:在app添加一个智能辅助服务然后在设置界面打开智能辅助即可在服务中监听屏幕各种状态,我们可以监听安装的install包然后监听安装弹框的“安装”点击按钮,监听到直接进入安装流程就可以了可能上面说的比较绕,下面直接来流程:1.manifes中的配置如下:<manifest xmlns:android="http://schemas.android.com/apk/res/a...原创 2019-11-15 13:38:01 · 2790 阅读 · 0 评论 -
Android java.lang.RuntimeException: Parcelable encountered IOException writing serializable object
Android java.lang.RuntimeException: Parcelable encountered IOException writing serializable object爆上面错误可能是当前的类没有序列化serializable注意:如果当前的类序列化了一定要检查当前的子类是否序列化我这报错就是子类未序列化导致的!!!...原创 2019-12-06 17:35:14 · 288 阅读 · 0 评论 -
android 项目迁移然后运行不起来 爆错> Task :app:processDebugResources FAILED
Executing tasks: [clean, :flutter:assembleDebug, :app:assembleDebug]> Task :clean UP-TO-DATE> Task :app:clean> Task :flutter:clean> Task :flutter:compileFlutterBuildDebugArm&g...原创 2019-12-14 16:06:27 · 7065 阅读 · 0 评论 -
apk 8.0版本安装
注意android 8.0及以上必须手动打开未知来源才能安装成功原创 2020-01-17 17:40:21 · 355 阅读 · 0 评论 -
android 基础知识 容易忽略的知识点
一.R.java文件1.自动生成的R.java文件由AAPT工具生成,每个资源都对应R类的一个内部类,每个具体的资源项都对应内部类的一个public static final int类型的字段。二.签名1.android项目是以包名作为唯一标识,如果在同一台手机上安装两个包名相同的应用,后面安装的应用就可以覆盖前面安装的应用。2.签名可以让两个不同签名的apk不会被替换,但是手机里...原创 2020-03-15 18:19:11 · 214 阅读 · 0 评论 -
Default interface methods are only supported starting with Android N (--min-api 24): void androidx.l
Default interface methods are only supported starting with Android N (--min-api 24): void androidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner) 根据上面的gradle模块里面的min...原创 2020-03-27 14:47:54 · 1695 阅读 · 0 评论 -
sim卡号获取不完整解决方案
val tm = context.getSystemService(Context.TELEPHONY_SERVICE) as? TelephonyManager ?: return "null"var sim = tm.simSerialNumber ?: "null"如上所示方法获取sim卡号是获取不到的,需要下面的方法,原因请看源码,这里不做解析了...原创 2020-03-30 19:17:53 · 2187 阅读 · 1 评论 -
git fork项目后出现如下错误D:\androidsdk\build-tools\29.0.3\aidl.exe‘‘ finished with non-zero exit value 1
git fork项目后出现如下错误D:\androidsdk\build-tools\29.0.3\aidl.exe'' finished with non-zero exit value 1解决方案:fork的项目要与原本项目同一目录层级,不然会报错原创 2020-07-09 19:35:51 · 856 阅读 · 0 评论