
Androud开发与调试
记录Androud开发中遇到的调试问题、开发问题。
Dyan_csdn
人生过半,保持敬畏之心,无所畏惧
展开
-
Android 源码编译资料集
1、window环境下载Android系统源代码的方法。原创 2024-11-16 10:57:41 · 316 阅读 · 0 评论 -
解释Android中的线程和进程,以及如何正确地在后台线程中更新UI?
由于Android的UI操作必须在主线程中执行,所以任何耗时的操作都不应该在这个线程上直接进行,以避免应用无响应(ANR,Application Not Responding)。AsyncTask是一个抽象的辅助类,用于在后台线程中执行耗时操作,并在主线程中更新UI。在后台线程中,你可以创建一个Message对象,并使用Handler将其发送到主线程的Looper,从而在主线程中处理UI更新。使用这些方法,你可以确保在后台线程完成工作后,UI能够在主线程中得到正确的更新,同时避免ANR和其他潜在的问题。原创 2024-03-03 00:01:09 · 875 阅读 · 0 评论 -
Android中的Intent是什么?它是如何工作的?
Intent可以被看作是一个轻量级的URI(统一资源标识符),它封装了要执行的动作(Action)、要操作的数据(Data)、要操作的数据类型(MIME类型)、要传递的额外信息(Extras)等。4. **启动组件**:一旦Intent被创建并配置好,你就可以通过调用`startActivity()`、`startService()`或`sendBroadcast()`等方法来启动一个Activity、Service或发送广播。1. **创建Intent**:首先,你需要创建一个Intent对象。原创 2024-03-02 23:59:14 · 743 阅读 · 1 评论 -
记录第一次排查ANR经历
第一步:找到logcat中的报错记录E/ActivityManager: ANR in com.example.testapp (com.example.testapp/.CrashTestActivity) PID: 2480 Reason: Input dispatching timed out (Waiting because the touched window h...原创 2019-10-23 10:57:56 · 632 阅读 · 0 评论 -
RxAndroid jar包引入异常导致java.lang.NoClassDefFoundError: Failed resolution of: Lio/reactivex/android/sche
前言:项目引用第三方sdk,运行报错:java.lang.NoClassDefFoundError: Failed resolution of: Lio/reactivex/android/schedulers/AndroidSchedulers;原因:没有引入RxAndroid。解决:Build.gradle中增加implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'但是:项目服务器不是用gradle 编译的,而是mk。所以要找jar..原创 2021-04-30 16:20:30 · 2188 阅读 · 1 评论 -
安卓开发环境配置--关键步骤以及问题处理
1、安装as:android-studio-ide-171.4443003-windows选第1个:选第2个:2、拷贝压缩后的sdk到本机,配置:1)给as配置sdk地址:点击下图configure-Project Defaults-Project Structure,打开sdk loaction页面配置本地sdk地址。2)在环境变量中新增ANDROID_HOME,变量值为:D:\AS\Sdk然后就是在系统的Path变量后,追加;% ANDROID_HOME%\pla原创 2020-07-03 11:11:57 · 383 阅读 · 0 评论 -
克隆eclipse项目到本地Androidstudio编写的全过程
1、克隆项目;对比项目目录和AS新建项目的目录不同,且多数文件缺失,请教老师傅:1)本地工程里无效文件,不会上传服务器;2)服务器上的是eclipse项目。对策:对“无效”没有太多概念,但直觉说明,要后续通过git管控代码,必须保证,本地形成项目后多出来的那些文件也是要屏蔽掉的。2、安装eclipse,新建项目以克隆下来的文件目录为源文件生成;3、查看git指令确定,新建项目多出来的文件:.classpath.projectbin/4、增加.gitignore文件,.原创 2020-07-03 15:10:35 · 346 阅读 · 0 评论 -
AndroidStudio 导入jar包之“项目没有lib目录”
前言:一般新建项目是有的,本次项目是从eclipse中基于已有代码生成项目再转到AS上的,于是遇到了没有lib目录的问题。处理:在项目根目录下,新建一个lib目录,把jar文件拷贝进去; 在AS中右击项目名,点击Open Module Settings打开页面,选中项目,点击Dependencies子叶,点击+号,引入jar文件,点击ok即可。完成jar导入。...原创 2020-07-06 13:05:02 · 2611 阅读 · 0 评论 -
解决“第一次安装由于缓存问题导致的闪退"
问题场景:第一次安装,进入APP后进行网络操作,报错:cache is closed,闪退。问题原因:Myapp中设置了okhttp的缓存目录为sd下的文件目录,在第一次安装的时候,改代码在还没有获取到sd权限就执行了,所以报错。解决办法:把Myapp中那些要设置sd目录的代码,都放到了之前获取权限后要执行的“创建本地目录文件”的代码段中,这样就不会有目录的问题了。...原创 2019-07-17 13:08:49 · 453 阅读 · 0 评论 -
腾讯在线教育互动课堂——Demo调试过程记录
官方文档地址:https://cloud.tencent.com/document/product/680/17888“Demo调试”不像集成使用,不需要完全按照文档一步步处理,基本的代码、集成在下载下来的demo项目上都已经写好了,以下记录以下我的调试过程,或许有受到文档影响,因为过程中经历了两版demo和几版几款sdk更新,以下记录的是最终成功展示"老师、学生进入课堂后的视频、白板交互"的...原创 2018-10-12 10:34:29 · 3474 阅读 · 2 评论 -
关于IntentService与Service的使用选择
虽然IntentService的好处很多,说是方便,说是做完任务自动销毁;而对于类似上传、下载这种需要等待异步结果的需求就不能用IntentService,因为它会自己销毁掉而上传却并未完成; 今天用阿里云上传忽成功忽传不成功,没有任何报错异常,好的吧,原来IntentService是元凶,换成Service就好了。onStartCommon参考上一篇的说明,上传嘛,参考htt原创 2016-05-25 18:20:11 · 687 阅读 · 1 评论 -
腾讯云点播集成
LiteAVSDK_Player_Android_4.9.4663本次集成是这个版本的腾讯云点播播放器;工程原来的srcDirs是在lib文件下的,但是集成后一直报so的问题,找不到文件,编译没有问题,运行就删除,点播的方法找不到。实在米有办法了,完全按照pdf上的说明换成了全部换成了src/main/jniLibs,才成了。如上配置ndk,处理了点播so只提供这两种的问题,其他的so文件目录都删...原创 2018-07-09 16:52:50 · 1345 阅读 · 0 评论 -
AsyncTask的execute并没有立即执行
百度下,也是有不少方案和AsyncTask原理讲解的,匆匆忙忙地找了,实践有效,也没时间看下原理(看了也记不太清楚),在此做下记录。原因不讲了,也讲不清楚,解决方案就是利用executeOnExecutor设置自己的队列,从而在旧页面关闭前能及时清理当前页面发出的数据请求;Ps:tasks为一个ArrayList,用来存储当前界面所有产生的task,executeOnExecutor能清除原创 2016-05-06 10:12:12 · 2807 阅读 · 1 评论 -
Android实现支付宝支付遇到的问题记录--主要是和服务器的合作上
一、已解决1、客户端需要处理的很简单:跟服务器接口要带有签名的商品信息(即支付宝api需要的入参)2、服务器的联合排查工作(由于服务器工作较忙,需要联合定位,且自己对php不了解,过程比较头疼和耗时),主要出现两个问题:1)ALI64 解决:服务器返回的字符串中sign的值需要做Unicode(utf-8)的转码,不论开发语言是否是utf-8,均要做,出来的视觉效果上就是保原创 2016-04-27 11:30:47 · 4082 阅读 · 0 评论 -
SwipeMenuListView动态修改menu
项目需要,用SwipeMenuListView来做侧滑订阅或者退订,订阅还是退订是根据实时数据走的,找不到修改menu的方法,一旦create后就改不了了,setOnMenuItemClickListener中的swipemenu对象做修改,也改变不了视图,最终尝试出一种方法:数据更新后,更新adapter,给SwipeMenuListView重新setAdapter 有效了(菜单更新了~原创 2018-01-08 18:13:55 · 931 阅读 · 1 评论 -
SwipeMenuListView侧滑不显示的问题
场景:SwipeToLoadLayout嵌套SwipeMenuListView分析:一开始以为是滑动冲突的问题,找了一堆解决办法一一尝试,还是显示不出来,只有上拉下拉的效果,于是屏蔽掉SwipeToLoadLayout,发现依旧显示不出来,这与之前做过的结果不符;一翻之前的代码明显嵌套使用也是没有问题的,一一对比发现:SwipeMenuListView采用的adpater中不可以定义整个V原创 2018-01-08 13:52:16 · 832 阅读 · 2 评论 -
写弹窗Dialog容易犯的小错误
平时在主要改业务代码多,类似弹窗也就拖拖以前的代码,稍微改改、这次重新手写一个弹窗,漏洞百出,还是基础不够扎实~前提:自定义Dialog继承AlerDialog问题1:点击弹出弹窗,有dialog阴影效果,但是布局没有显示。原因:没有重写onCreate方法,setContentView要设置在onCreate方法中,手误写在构造函数里了...解决办法:setContentView设置在onCreate方法问题2:弹窗显示,但是外部传入的数据没有显示到UI上。原因:重写show方法时原创 2020-06-09 10:01:02 · 545 阅读 · 0 评论 -
ListView添加FootView的部分问题和解决记录
一、java.lang.ClassCastException: 自己的包名+Adapter名 cannot be cast to android.widget.HeaderViewListAdapter出现场景:setAdapter后,由于业务需要,需要removeFootView,报如上异常。解决方案:在初始化组件时(一般setAdapter都是写在组件初始化代码里的),先addF...原创 2018-08-28 11:45:03 · 1268 阅读 · 0 评论 -
TextView跑马灯实践
产品标题有跑马灯的需求,百度找个这篇文章:https://blog.youkuaiyun.com/qq_36982160/article/details/82801677照做了,效果可以。但是换了页面,使用出现“文字显示不全”的现象,感觉就像:跑一段回到原位,根本跑不完整。百般对比和测试,发现前后两个页面的差距在于,问题页面上有:layout_above的配置。不清楚为什么会有这个影响,姑且把这个属...转载 2019-07-01 14:50:30 · 155 阅读 · 0 评论 -
AlertDialog中的种种不适
1、EditText使用中,点击(自动获取焦点)后软键盘无法唤出:添加getWindow().clearFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);或者把继承AlertDialog换为Dialog。软键盘search型监听:if (keyCode == KeyEvent.KEYCODE_ENTER &am...原创 2020-02-27 15:46:08 · 161 阅读 · 0 评论 -
给产品更多发挥余地的图片控件写法
剖析这个需求,需要做到的要求:1、给定最大高度、最大宽度;2、在这个最大区域内,把图片的一维缩放到最大值,保证图片完整显示在区域内。转化要求为实现:ImageView1、wrap_content宽高;android:layout_width="wrap_content"android:layout_height="wrap_content"2、设置最大宽高,adjustV...原创 2020-01-10 17:37:01 · 126 阅读 · 0 评论 -
评论列表升级做的处理和问题解决
1、ListView的头部嵌套一个NoscrollListView,数据刷新时发现,NoscrollListView的adapter数据都更新了,但是视图上需要“点击一下”才会更新显示;(不明原因)第一步,让NoscrollListView获取焦点解决显示问题:更新NoscrollListView的adapter时,NoscrollListView获取焦点 requestFocus(),能实现...原创 2019-11-27 10:43:57 · 217 阅读 · 0 评论 -
关于.gitignore不起作用
由于公司和家里的as版本不同,倒腾了好久,但是代码到本地后build.gradle等文件做了修改,为了不影响公司版本,故家里的需要忽略这些文件的修改,想到的就是加gitignore配置,直接添加不起效果,找到如下办法:有时我们发现添加.gitignore文件后并没有忽略我们想要忽略的文件,解决方法就是清除一下缓存,原因gitignore对已经追踪(track)的文件无效,清除缓存后文件将以未追原创 2018-01-07 11:09:51 · 790 阅读 · 0 评论 -
Fragment嵌套Fragment显示不出来的问题
网上都说Fragment嵌套ViewPager嵌套Fragment,显示不出来怎么办?注意用getChildFragmentManager()!!!!mPagerAdapter = new TabViewPagerAdapter(getChildFragmentManager(), fragments,tabStrs);我改了可还是显示不出来!!怎么破~怀疑是不是我Fragment原创 2018-01-08 09:59:36 · 1196 阅读 · 0 评论 -
随时随地退出应用
郭霖的文章里有“随时随地退出应用”的代码,如下:public class ActivityCollector {public static List activities = new ArrayList();public static void addActivity(Activity activity) {activities.add(activity);}public原创 2016-04-21 10:14:30 · 634 阅读 · 0 评论 -
WebView中响应网页的“上传文件”需求
第一步:webView.getSettings().setJavaScriptEnabled(true);第二步:webView.setWebChromeClient(new WebChromeClient() {//扩展浏览器上传文件//3.0++版本public void openFileChooser(ValueCallback<Uri> uploadMsg...原创 2019-07-15 19:32:33 · 296 阅读 · 0 评论 -
AIDL初体验--实践笔记
阅读项目源码的过程中,很多基于AIDL的代码还是看不太明白,基于项目中一处RemoteCallbackList的使用,搜索到以下的相关文章,做了学习和实践。本文包括AIDL基本使用和RemoteCallbackList使用两方面。一、学习AIDIL使用参考文章地址:https://www.jianshu.com/p/2683e27efe9a1、基础操作1)调试AIDLClient时,AIDLService开启,才是进程间通信环境; 不然bindService调用后没有回调,mIC...原创 2020-07-30 11:03:30 · 262 阅读 · 0 评论 -
Android Studio实战--快捷键
《Android Studio实战》第三章 在Android Studio中编程 除了一些已经在用的技巧外,今日收获3个快捷方式:Ctrl+/ 注释行 (即//)Ctrl+shift+/ 注释代码段(即/* */)Alt+Insert 调出AS提供一些函数(表述可能不太准确,自己试试就看到了),比如构造、getter等~ 问题:移动代码、设计风格。这两块的快捷键...原创 2018-09-27 18:16:13 · 228 阅读 · 0 评论 -
XhxEmotionsKeyBoard表情键盘调试记录
第一部分:准备工作(从github上下载源代码)https://github.com/w446108264/AndroidEmojihttps://github.com/w446108264/XhsEmoticonsKeyboardAndroidEmoji部分,跑demo是没有问题的;XhsEmoticonsKeyboard部分demo依赖于AndroidEmoji1.0.0版本,然而...原创 2019-12-12 10:08:20 · 562 阅读 · 0 评论 -
关于timer的一个收藏
https://www.cnblogs.com/baizhanshi/p/9639030.htmljava Timer(定时调用、实现固定时间执行)schedule时间片是5s,那么理论上会在5、10、15、20这些时间片被调度,但是如果由于某些CPU征用导致未被调度,假如等到第8s才被第一次调度,那么schedule方法计算出来的下一次时间应该是第13s而不是第10s,这样有...原创 2019-11-01 10:35:57 · 175 阅读 · 0 评论 -
线程的一次学习笔记
https://mp.weixin.qq.com/s/oqKHrl_xZjU-oE9YsR6koA本次笔记,记录的是“如何理解上文中的一些内容”?1、原文:“当发现队列满了后,就会调用变量queue的wait()方法,该生产者线程就会被进入等待状态,并且释放Queue对象的监视器锁,让其他生产者线程和消费者线程去竞争这个监视器锁,打破了死锁产生的四个条件中的请求并持有条件,避免发生死锁,同样的,当发现队列空了后,也会调用变量queue的wait()方法,该消费者线程会进入等待状态,并且释放Que原创 2020-10-27 16:24:33 · 169 阅读 · 0 评论 -
从内部静态类单例模式看类加载顺序
外部调用PlayerSdkManager.getInstance():1、getInstance被加载;“yiyiyi”打印2、PlayerSdkManagerHolder被使用,因为是静态内部类,所以PlayerSdkManager类被加载;“hahaha”打印3、sInstance被使用且是静态属性,第一调用,会执行 PlaySdkManager的构造函数。"lalala"打印另外:父类的静态代码块->子类的静态代码块->初始化父类的属性值/父类的普通代码块(自...原创 2020-12-25 09:44:41 · 242 阅读 · 0 评论 -
尝试“Android应用图标微技巧,8.0系统中应用图标的适配”
公司选了个好时间:8月8号,项目上线,我终于结束了早出晚归,连睡觉上厕所的时间都不够的日子,还是欢乐地畅享博客圈,好久没有逛csdn,感觉自己犹如井底之蛙般out了......上线前被7.0、8.0的适配问题,纠缠了好一阵子,因为out了没有及时适配,在试用版发布后收到了一些些问题的反馈,才意识到这些适配,惭愧惭愧...... 废话不多说,昨个刚好看到郭神的文章,就决定...原创 2018-08-09 16:27:15 · 583 阅读 · 0 评论 -
锁屏后一阵子,音频播放会被暂停,解锁后又恢复播放
这个现象,我还没有找到代码上的解决方案,还不知道是不是可以通过怎样的权限声明,从而获取到不被锁屏清理的办法,但是应该是有的,因为我看我手机上QQ之类的设置上就没有被锁屏清理。 在网上查了一下,记录下实践步骤:2华为1、找到你手机的省电模式(手机不同,界面名称可能不通,找下相关的设置)2、找到锁屏清理一项3、把自己的音频应用放出来,即关掉...原创 2018-08-10 16:00:15 · 25613 阅读 · 0 评论 -
根据实际要求尺寸显示原图
public static Bitmap decodeSampledBitmapFromResource( Resources res,int resId,int reqWidth,int reqHeight){//先通过inJustDecodeBounds=true获取图片尺寸BitmapFactory.Option options=new BitmapFactory.Options();options.inJustDecodeBounds=true;BitmapFactory.deco.翻译 2020-07-02 11:49:55 · 354 阅读 · 0 评论 -
AndroidStudio中导入aar
主要新增上述两处修改。只是增加aar是不够的,必须增加上述dirs 'libs'部分,不然会报错:ERROR: Failed to resolve: :constraint-layout-1.1.3:原创 2021-11-25 16:35:26 · 1209 阅读 · 0 评论 -
AS编译报错:Execution failed for task ‘:processReleaseResources‘.> Android resource linking failed
背景:AndroidStudio 3.2.4AS Build 失败,提示:解决过程:1、【失败】用关键字Execution failed for task ':processReleaseResources'.> Android resource linking failed 度了许久,大部分说是编译版本的配置有误。修改均无效,度久未见良方。2、【成功】用关键字AAPT: error: attribute layout_constraintLeft_toLeftO原创 2021-11-25 14:47:22 · 4822 阅读 · 0 评论 -
Eclipse打jar包报错:JAR creation failed. See details for additional information
步骤如下:1、项目右键-properties-Java Compiler-JDK Compliance level栏换一个JDK,我选了1.8;(打包依然失败)2、选择Project-Clean 然后选择项目,clean一下(打包成功)3、看到日志有报错,大概意思是建议我的eclipse版本jdk换回1.6,照做了(依然打包成功)所以结论应该是要clean一下,还是要换1.8再clean下呢??试试总能解决的。...原创 2020-09-01 10:28:11 · 3978 阅读 · 0 评论 -
项目运行,so文件报错:java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader
现象:libs下明明有armeabi-v7a文件夹,其下明明有so文件;处理办法:在src目录下,新增main-jniLibs-armeabi-v7a-xxx.so 即可/原创 2020-08-25 14:34:12 · 253 阅读 · 0 评论 -
AS编译报错:> Could not find xxxxxxx.
同样本地AS上引入“debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.4'”一个项目正常运行,另一个项目报如上错误,尝试发现与gradle有关。解决办法:build.gradle文件加入:allprojects { repositories { google() jcenter() }}即可编译成功。...原创 2020-08-25 11:36:53 · 714 阅读 · 0 评论