web-dev-qa-db-ja.com

facebook + Android:フルスクリーンの不透明なアクティビティのみがオリエンテーションをリクエストできます

Facebook SDKバージョン4.27.0

Android OSバージョン8.0

アプリが例外でクラッシュします。これは、Crashlyticsで見つけたトレースログです。

Fatal Exception: Java.lang.RuntimeException: Unable to start activity ComponentInfo{com.xxx.yyy/com.facebook.FacebookActivity}: Java.lang.IllegalStateException: Only fullscreen opaque activities can request orientation
       at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2822)
       at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2897)
       at Android.app.ActivityThread.-wrap11(Unknown Source)
       at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1598)
       at Android.os.Handler.dispatchMessage(Handler.Java:105)
       at Android.os.Looper.loop(Looper.Java:251)
       at Android.app.ActivityThread.main(ActivityThread.Java:6563)
       at Java.lang.reflect.Method.invoke(Method.Java)
       at com.Android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.Java:240)
       at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:767)
Caused by Java.lang.IllegalStateException: Only fullscreen opaque activities can request orientation
       at Android.app.Activity.onCreate(Activity.Java:986)
       at Android.support.v4.app.SupportActivity.onCreate(SupportActivity.Java:66)
       at Android.support.v4.app.FragmentActivity.onCreate(FragmentActivity.Java:285)
       at com.facebook.FacebookActivity.onCreate(FacebookActivity.Java:62)
       at Android.app.Activity.performCreate(Activity.Java:6975)
       at Android.app.Instrumentation.callActivityOnCreate(Instrumentation.Java:1214)
       at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2775)
       at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2897)
       at Android.app.ActivityThread.-wrap11(Unknown Source)
       at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1598)
       at Android.os.Handler.dispatchMessage(Handler.Java:105)
       at Android.os.Looper.loop(Looper.Java:251)
       at Android.app.ActivityThread.main(ActivityThread.Java:6563)
       at Java.lang.reflect.Method.invoke(Method.Java)
       at com.Android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.Java:240)
       at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:767)

誰もこれで私を助けることができますか?

PS:Android Sourceでは、この行番号987を確認した後、この行が原因であると思われます。

https://Android.googlesource.com/platform/frameworks/base.git/+/master/core/Java/Android/app/Activity.Java#1002

また、私のマニフェストで:

<activity
    Android:name="com.facebook.FacebookActivity"
    Android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
    Android:label="@string/app_name"
    Android:screenOrientation="portrait" />
25
Chintan Soni

この属性の削除:

Android:screenOrientation="portrait"

FacebookActivityタグから、問題を解決できる場合があります。

31
Chintan Soni

この<item name="Android:windowIsTranslucent">true</item>をスタイルの問題から削除すると解決しました。

2
Yuri Misyac

最新のfb統合ガイドから、Android 8.0でクラッシュを引き起こすテーマまたは向きを指定する必要はありません。したがって、新しい設定で最新のfb sdkを使用する必要があります。

<activity Android:name="com.facebook.FacebookActivity"
    Android:configChanges=
            "keyboard|keyboardHidden|screenLayout|screenSize|orientation"
    Android:label="@string/app_name" />

https://developers.facebook.com/docs/facebook-login/Android/#manifest

0
thanhbinh84

スタイルメニューからこの行を削除します

  <item name="Android:windowIsTranslucent">true</item>

かわった

<style name="AppTheme" parent="Android:Theme.Translucent.NoTitleBar"></style>`

 <style name="AppTheme" parent="Android:Theme.Holo.NoActionBar.TranslucentDecor"></style>

その後削除

<item name="Android:windowIsTranslucent">true</item>
0
Ömür TEKİN