各种BUG解决方法
加顿墨鱼
既然来这里写博客了,写的代码就尽量方便大家引用,尽量将代码简单引用化。
展开
-
Fragment快速切换导致闪退的解决方法
频繁调用事务getFragmentManager().beginTransaction().replace(R.id.cont, woDeFragment).commit();或者add方法时,会导致APP闪退。解决方法:在调用之前判断是否已经被加载:if (!woDeFragment.isAdded()) { getFragmentManager().be原创 2017-01-17 18:18:08 · 4999 阅读 · 0 评论 -
Error:(63, 13) Failed to resolve: com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+
今天2017年7月20日,打开项目突然报这个错误,经查是微信sdk问题。参照官方文档在build.gradle文件中,添加如下依赖即可:dependencies { compile 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+'}或dependencies {原创 2017-07-20 15:01:49 · 5975 阅读 · 2 评论 -
okhttp小坑总记录
1、okhttp 报java.lang.IllegalStateException: closed,java.lang.IllegalStateException: closed,原因为OkHttp请求回调中response.body().string()只能有效调用一次2、获取字符串得用这个response.body().string(),而不是.toString()。原创 2017-09-14 17:19:38 · 417 阅读 · 0 评论 -
安卓JNI错误调试汇总
1、Android 调用.so包时报错:No implementation found for native Lxxx, java.lang.UnsatisfiedLinkError: XXX时的 解决办法:在.cpp文件里,增加extern C{}结构,大括号把所有的函数方法包含在里面。原创 2017-09-29 11:57:36 · 401 阅读 · 0 评论 -
多布局不小心出现的越界异常,定义getItemViewType 的返回值注意事项
最近在做项目时,需求上需要ListView 有两个不同的布局,由于自己定义getItemViewType 的返回值,出现一个异常: java.lang.ArrayIndexOutOfBoundsException: length=2; index=2 需要注意的是getItemVIewType这个方法返回的整型范围: 0 to (getViewTypeCount()原创 2017-10-10 17:29:39 · 556 阅读 · 0 评论 -
android平台解决找不到sun.misc.BASE64Enocder的问题
java.long.NoClassDefFoundError: sun.misc.BASE64Encoder在与服务器端交互时,服务器端采用sun.misc.BASE64Encoder加密后,Android端找不到这个API。其API在jdk 1.6下的rt.jar中,有45.6M之巨大。我们需要使用则需要将其源码抽取出来单独放到客户端。http://files.c原创 2017-11-06 19:50:15 · 2525 阅读 · 1 评论 -
项目activity销毁后重建。
主流的布局,activity加fragment创建菜单,但是销毁主activity后,又自动创建了,暂时不在问题所在,可能基类与activity管理工具哪里出了问题。解决办法:判断是否第二次自动创建,销毁。@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode原创 2017-11-06 19:53:52 · 386 阅读 · 0 评论 -
webview无法吊起H5中的弹窗问题
解决方法:如果是fragment,必须使用getactivity()上下文,不能用全家上下文,否则无法弹窗。原创 2017-11-17 18:30:18 · 1515 阅读 · 0 评论 -
js的settimeout方法在安卓不起作用,在某些项目里死活运行不正常的问题。
在项目里引入一个H5的SDK,调用时候死活不正常,无法调用起里面的js的settimeout方法。把代码写到令一个工程,却一切正常。进行了长久的各种方法,目前找到一个办法,仅供参考。(提醒,安卓工程引入H5,各种兼容性问题都是巨坑,慎重选择。)为了直接在小米手机上安装项目,是这样设置的:dependencies { classpath 'com.android.tools.原创 2017-12-02 09:05:13 · 4112 阅读 · 0 评论 -
自定义view中bitmap.getwidth()方法报空指针
自定义view 的时候,在构造方法中初始化bitmap,一直报null。经过修改图片获取放在onDraw中,正常,原因未知。代码如下:@Overrideprotected void onDraw(Canvas canvas) { super.onDraw(canvas); switchBackgroupBitmap=BitmapFactory.decodeResource(mCo...原创 2018-03-08 10:29:58 · 2172 阅读 · 1 评论 -
WebView加载https页面不能正常显示,空白一片
在使用WebView加载https资源文件时,如果认证证书不被Android认可,那么会出现无法成功加载对应资源问题。那么,我们就要针对这一状况作出对应的处理。在使用WebView的类中添加如下代码:// android 5.0以上默认不支持Mixed Contentif (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {...转载 2018-03-22 15:07:14 · 2830 阅读 · 0 评论 -
上架小米市场,安装在小米4上被提示app是病毒,有恶意更新行为
经排查,是bomb的问题。必须本地引入jar,否则会报错。只有在小米4手机上会报病毒。原因未知,可以先通过小米云测试排查。原创 2018-03-19 08:58:28 · 3234 阅读 · 0 评论 -
android WebView 加载重定向页面无法后退快捷简单解决方案
在使用WebView的时候,我们一般都会设置WebViewClient ,重写shouldOverrideUrlLoading方法,让webView加载点击url,并return true。因为不这样设置,点击页面上的链接弹出浏览器[java] view plain copywebView.setWebViewClient(new WebViewClient() { @Overrid...转载 2018-03-30 14:04:04 · 798 阅读 · 0 评论 -
解决 INSTALL FAILED CONFLICTING PROVIDER的问题方法
问题原因在Android中authority要求必须是唯一的,比如你在定义一个provider时需要为它指定一个唯一的authority。如果你在安装一个带有provider的应用时,系统会检查当前已安装应用的authority是否和你要安装应用的authority相同,如果相同则会弹出上述警告,并且安装失败。解决方案在定义provider是,使用软编码的形式,如下:<provider ...转载 2018-05-22 09:56:54 · 360 阅读 · 0 评论 -
环信登陆报错300,连接不到服务器
经排查是手机wifi问题,这里是一个小坑,因为用wifi的时候,是可以上网的,可以打游戏,也可以看网页,但是环信登陆不成功。换成流量上网,就登陆成功了,具体原因不明。原创 2017-08-16 15:53:13 · 1910 阅读 · 0 评论 -
Android studio开发小米手机 usb调试安装不了应用,不用再说打开usb调试了。
需求:新创建的工程,无法通过usb安装到小米手机。两种解决方法:1、小米开发者选择关闭miui优化;2、Gradle 回退到2.2.3 ,新版的Gradle 2.3 和ADUI不兼容.原创 2017-06-24 11:39:31 · 8901 阅读 · 0 评论 -
onActivityResult无值小坑
测试时,有的手机上onActivityResult却拿不到值检查了很多方面最发现时启动模式问题,只要是标准启动就可以了原创 2017-02-21 17:16:15 · 398 阅读 · 0 评论 -
游标Cursor遍历报错,数组越界解决办法
换一种遍历方式,比较保险:cursor.moveToFirst();while (!cursor.isAfterLast()) { String sname = cursor.getString(cursor.getColumnIndex("sname")); cursor.moveToNext();}或者这样写一样:for (cursor原创 2017-02-15 18:06:17 · 2038 阅读 · 1 评论 -
环信小坑:历史好友申请消息如何接收
引入环信聊天后,遇到一个小坑,在做好友申请消息处理的时候,怎么也收不到app关闭时发送的消息。经测试,需要将此监听方法写成全局,所以在Application中设置此监听就可以了,吐槽下环信,文档不进行说明:代码如下配置:// 初始化环信sdkinit(applicationContext); EMClient.getInstance().contactManager().setC原创 2017-04-12 15:34:47 · 576 阅读 · 0 评论 -
Glide图片被拉伸解决方法
在使用Glide过程中会出现图片被拉伸的情况,经查开始使用了place holde的缘故,有3种简单方法:1、取消使用place holde:Glide.with(context).load(resId). into(imageView);2、使用place holde加上dontAnimate():Glide.with(context).load(resId).pla原创 2017-04-13 10:41:05 · 3989 阅读 · 0 评论 -
异常Calling startActivity() from outside of an Activity的解决方法
Caused by: Android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?Context中有一个sta转载 2017-04-20 17:36:30 · 511 阅读 · 0 评论 -
activity在api25版本自动暂停和恢复bug问题
正常找原因原创 2017-05-04 17:44:18 · 268 阅读 · 0 评论 -
安卓内存溢出优化
内存溢出有很多原因,主要有两个:context与bitmap。随着app功能的不断丰富,单纯的优化已不足,需要增加安卓运行虚拟内存,方法如下: <application android:largeHeap="true" >原创 2017-04-26 15:17:08 · 460 阅读 · 0 评论 -
QQ登陆获取用户信息
小坑:在登陆之后,调用获取用户信息接口,结果不成功,经排查,需要在登陆成功之后设置:mTencent.setOpenId(openID); mTencent.setAccessToken(accessToken, expires); 完全代码如下:先登录://如果session无效,就开始登录 if (!mTencent.isSessi原创 2017-04-27 15:06:41 · 1674 阅读 · 1 评论 -
友盟集成登陆、分享、数据统计
问题:QQ登陆调不起来,分享调不起来。。。集成了之后按照官方文档一步一步都集成,写了代码发现什么都不成功,一大堆不知所谓的log。记录如下:QQ登陆,分享授权一次后不需要下次继续授权变有回调;qq分享不能分享纯文本;注意:集成中注意要把官方的面板jar及每个jar对应的资源文件全部都复制进来。但是还是没有调用成功,最后发现时混淆问题,我也不去挑QQ的混淆文件了,直接原创 2017-04-27 16:59:25 · 554 阅读 · 0 评论 -
IllegalStateException: No host靠谱解决方案fragment与viewpager相互套嵌bug
在做fragment套嵌viewpager,中再套嵌fragment的时候出现了这种报错。在设置适配器的时候用了以下几种都没成功:1、getChildFragmentManager()2、 getFragmentManager()3、getSupportFragmentManager();经过仔细排查,还是自己平时习惯的问题。一般我平时创建适配器代码如下:Pag原创 2017-06-08 16:37:11 · 425 阅读 · 0 评论 -
Can't create handler inside thread that has not called Looper.prepare()
报错:Can't create handler inside thread that has not called Looper.prepare()场景:在子线程中进行了数据操作,并且用handler发送刷新ui并打印Toast原代码如下:new Thread(new Runnable() { public void run() { try {原创 2017-06-02 10:10:50 · 873 阅读 · 0 评论 -
java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this a
错误描述为:java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.快速解决办法:public class MainActivity extends ActionBarActivity {类似: 全部改成继承Act原创 2017-07-11 11:21:41 · 540 阅读 · 0 评论 -
小米手机调用系统相册直接失败,无法显示bug
Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);startActivityForResult(intent, 101)这段非常常规的代码,一般就是有个图片选择框跳出来接着,选择图片。但是在部分小米手机上选择相册之后直接返回失败,坑死了。请注意,不是代码问...原创 2019-08-01 11:36:29 · 3639 阅读 · 2 评论