Android8.0 极光分享 JiguangShellActivity Only fullscreen opaque activities can request orientation

在Android 8.0系统中,集成极光分享时遇到微博分享崩溃的问题,原因是全屏不透明活动才能设置界面方向。崩溃主要由`android:screenOrientation`和`android:windowIsTranslucent`同时设置引起。解决方案包括删除Activity的`android:screenOrientation`属性或移除主题中的`android:windowIsTranslucent`。对于使用gradle构建的极光分享,需参考极光社区的技术讨论进行特殊配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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” />

至此.解决这个崩溃问题!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值