在升级友盟分享SDK时,碰到了两个问题,所以,做一波简单总结。
另,千万千万注意,在头脑不清醒,思路不清晰的时候,宁愿休息一会儿,也不要强行改BUG,不然。。。真是一个惨痛的教训!!
应用中使用了友盟分享,由于版本较低,并且测试组小伙伴在测试时发现了分享到微博崩溃的情况,所以考虑升级到最新版 6.9.4。但是升级完之后,出现了下列问题:
1 问题现象
2解决方案
(1)、找不到so的解决
A:问题现象
按照友盟的相关文档,升级完成之后直接分享到微博,报错下列错误:
B:解决方案
在友盟提供的SDK包中,找到微博目录下的 jniLibs目录,然后把你APP支持的平台拷贝到自己项目的 jniLibs 目录:
(2)、IllegalStateException的解决
A:问题现象
在小米6、Galaxy S9 手机中,分享到QQ时崩溃,报错信息如下:
根据上图描述可知:只有非透明的全屏的Activity才可以改变Orientation。
但是,我们在集成友盟分享时,按照文档说明,为 AssistActivtiy 配置的 theme 为:android:style/Theme.Translucent.NoTitleBar。这是一个透明的没有标题栏的主题,所以在触发屏幕Orientation改变时会导致崩溃。
B:解决方案
按照友盟文档中的示例,在小米6、Galaxy S9中会崩溃,示例如下:
<activity
android:name="com.tencent.connect.common.AssistActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
向友盟反馈过之后,给出的解决方案如下:
<style name="AntNoTitleBar" parent="@android:style/Theme.Translucent.NoTitleBar">
<item name="android:windowIsTranslucent">false</item>
<item name="android:windowDisablePreview">true</item>
</style>
<activity
android:name="com.tencent.connect.common.AssistActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:theme="@style/AntNoTitleBar" />
修复问题1后,在小米6和Galaxy S9 中分享到微博时也会报IllegalStateException,因为微博分享相关页面在清单文件中也应用了Translucent .NoTitleBar 主题, 解决方案同上。