Andorid四个bug和微信分享
这份文档, 是这个blog的续集: [2016-09-14-android使用intent调用系统activity返回result时, 本地的属性读不到的原因和分析]
引入类库
不论是啥类库包括微信, 引入方式都一样, 可简单了, copy文件到libs目录, 一切都ok了.
#一起都ok的原因是: android build.gradle 因为有这一句:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:24.2.1'
compile 'com.android.support:multidex:1.0.0'}
#所以只要把jar放到libs目录就好了. 不必任何设置.
咱们先看一眼问题:
硬件相关有两个问题:
-
小米4.4.4兼容, luri为空. 就是要死磕这个.
“此电脑不能读取您的磁盘”, 小米针对windows的优化真彻底, mac根本读不出磁盘好不?
那么连windows就没问题了吗? 不好意思, 我是猜的, 木有windows做测试哈. (羞愧)
-
魅族6.0兼容, 无法调试. — 这个是魅族的bug, 呜呜, 再也不买魅族了.
- 开发者选项貌似默认就是打开的.
- usb调试
- 安装外部应用
- root
- 以上这些都没有用, 升级android studio, 问题解决了. 神啊.
估计是硬件无关的三个问题:
- 微信分享失败, 设置啥的都是正常的, 但是就是没反应.
- 图片显示模糊.
- 报错dalvikvm
- 拍照搜索不正常
- 我就是不识数, 咋办吧?……
思路, 去掉并行的线程试试.
-
去掉多个并行的线程之后,
-
依旧报错: VM with version 1.6.0 does not have multidex support
关掉multidex, 这个报错就没有了.
-
onBackPressed, 竟然被调用了.
-
dalvikvm错误依旧存在. 妹的.
-
-
1万头草泥马奔腾而去
-
就建一个最简单的android项目, 就会有这个问题: I/dalvikvm: Could not find method android.view.Window$
-
为啥想到要这么干呢, 是因为, 我在自己的项目里面注释, 发现是这句话引起了的问题:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);//问题在这句话, 凌乱了. setContentView(R.layout.activity_main); }
-
然后, 我发现图库搜索正常的, 拍照搜索死活不行.
-
-
继续仔细看log
- 难道说, 隐式intent调用之后, 系统重新oncreate么?
-
莫名其妙竟然好了, 我就是改了log而已啊!!!!!! log.d(“d”,”xxxx”); 这个有啥问题吗?
-
sourcetree看一下, 改了两个文件
-
androidmanifest.xml文件去掉android:name=”android.support.multidex.MultiDexApplication”
-
mainactivity.java文件
去掉一堆log, 改写一堆log
oncreate注释了两个会发起图片下载的线程.
onbackpressed注释了一个会发起图片下载的线程.
onactivityresult每种code情况最后都添加了return.
-
-
最关键的, 恐怕就是我升级了android studio.
-
认真的聊一下升级android studio这件事.
- 之前所有的尝试, 都是失败.
- 升级as之后, 魅族pro6好了.
- 升级as之后, 小米拍照之后再切图也好了.
- 其他问题待验证.
逐步验证
-
放开oncreate的两个线程, 逐步放开.
bug确实没了.
切图之后依旧会崩溃.
所谓的超出了api19的方法调用依旧存在, 恩, google不改也不知道为啥.
-
测试微信分享是否也好了.
没好.
就这个问题了, 图片问题被我粗暴的回滚解决了.
恍然大悟, 之前gradle编译错误就报在微信上, 我咋没想到呢?
二话不说, 从微信开放平台下载一个. 搞进去.
-
神奇的事情发生了, bug在更早的地方, 但是, 为啥不喷log, 对了, 估计魅族也是需要设置的, 和华为一个德行.