您的位置:首页 > 移动开发 > Android开发

记录自己开发中踩过的一些坑

2017-06-19 16:21 225 查看
如题,进以此来记录日常开发中遇到的一些坑,近期抽空整理一下并长期更新~~

排名不分先后,随踩随记~

1.部分手机App唤起第三方支付(微信/支付宝)不成功

以支付宝为例,环境为华为Mate7 EMUI4.0(Android6.0)系统,体验发现代码流程正常,支付宝却未启动正常的支付界面,其他手机正常,想到Android6.0新的权限管理方案,于是查看权限管理发现支付宝的权限中 [b]关联启动 一项未被授予,手动开启这项权限后正常。[/b]

本以为加上提示或者跳转告诉用户去开启支付宝的关联启动项就OK了,但是测试同学说美团App在同样的环境下不需要手动开启那项权限依然可以正常唤起支付宝宝,这TM就很尴尬了。最后通过查看支付宝官方最新集成文档并提问支付宝技术支持得到一个半肯定的回答,因为我们使用的支付宝SDK版本太老了,影响正常使用。项目中支付宝SDK中还是用的AliPay唤起的支付宝,这至少也是2年前的SDK版本了,不知道为什么一直没有更新,可能是抱着不出问题就不换的原则。通过demo测试确实和支付宝SDK版本有关, 经过替换最新版的支付宝SDK后验证一切正常。

2.H5交互相关

//java.lang.Throwable: A WebView method was called on thread ‘JavaBridge’. All WebView methods must be called on the same thread

1.与H5交互的交互中标注@JavascriptInterface的函数可被javaScript调用 但并不在Android主线程调用

所以此函数中不可进行UI操作或对WebView的操作

2.与H5交互的交互中标注@JavascriptInterface的函数命名为getUserId()与API冲突 在部分手机中出现权限报错(华为Mate10by8.0),不可用getUserId命名与H5交互的函数

3.//项目正式签名打包时报错mulit define错误

一般为依赖库重复引用冲突导致 以retrofit为例,retrofit会捆绑依赖okhttp

当其它lib中也有okhttp时会冲突(阿里云文件上传SDK需依赖okhttp),删掉lib中的okttp即可

可通过命令行查看app所有依赖库的lib树结构,具体命令百度

4//QQ分享成功后提示分享取消

1同时注意这里的APPid需要替换成你代码里配置的APPid

PlatformConfig.setQQZone(“100424468”, “c7394704798a158208a74ab60104f0ba”);

这两处的APPid应该是一致的,同时注意不要删掉tencent前缀!!!!

2注意实现onActivityresult方法

mShareAPI.onActivityResult(requestCode, resultCode, data);

5.//相机拍照机相册选择的开发相关

调用系统相机拍照获取图片分2种情况,如果启动相机时指定了Uri,则相机拍照结果会储存在该Uri下,并且onActivityResult中

的data返回为null 。如果启动相机时未指定Uri,则onActivityResult中data会返回照片缩略的Bitmap对象=data.getParcelableExtra(“data”)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android