App集成极光分享,极光版本是最新版本.在测试期间发现微博分享会崩溃,跟踪日志发现是8.0系统独有的问题.没办法,开始着手解决问题.先看下崩溃日志:
java.lang.RuntimeException: Unable to start activity ComponentInfo{xxx/cn.jiguang.share.android.ui.JiguangShellActivity}: java.lang.IllegalStateException: Only fullscreen opaque activities can request orientation
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2853)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2928)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1619)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6679)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:780)
红色标记的是崩溃的主要起因,查阅资料:只有不透明的全屏activity可以自主设置界面方向。
原因是我们给Activity同时设置了 android:screenOrientation="" 和 <item name="android:windowIsTranslucent">true</item>。
解决办法:删除AndroidManifest中相应Activity的 android:screenOrientation=""属性;或者删除相应Activity的theme中<item name="android:windowIsTranslucent">true</item>属性。
但是如果是极光分享采用gradle构建的,则应当用以下方式修改:
(没办法 尝试好的办法 都不行,最后找到极光技术群询问客服)
https://community.jiguang.cn/t/jshare-8-0-platactionlistener/26295/8
https://community.jiguang.cn/t/topic/27662/13
看下上面两篇
这个问题是8.0系统的一个的bug,你试试manifest这样配置看看
在app的AndroidManifest.xml里面配置
<activity
android:name="cn.jiguang.share.android.ui.JiguangShellActivity"
android:exported="true"
android:launchMode="singleTask"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:windowSoftInputMode="stateHidden|adjustResize"
tools:node="replace">
<!-- Optional QQ分享回调-->
<!-- scheme为“tencent”前缀再加上QQ开发者应用的appID;例如appID为123456,则scheme=“tencent123456” -->
<intent-filter>
<data android:scheme="tencent1106011004" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<!-- Optional 新浪微博分享回调 -->
<intent-filter>
<action android:name="com.sina.weibo.sdk.action.ACTION_SDK_REQ_ACTIVITY" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<!-- Optional 新浪微博私信回调-->
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="jsharesdk" android:host="sinaweibo"/>
</intent-filter>
</activity>
注意替换这里的值: <data android:scheme=“tencent1106011004” />
至此.解决这个崩溃问题!