facebook / facebook-sdk-for-unity

The facebook sdk for unity.
https://developers.facebook.com/docs/unity
Other
491 stars 257 forks source link

unity exception 7.17.0 Facebook.Unity.CodelessUIInteractEvent.SetLoggerInitAndroid () #268

Open studentutu opened 5 years ago

studentutu commented 5 years ago

It is pain to even compile it properly with other sdk enabled like Firebase Database or Admob, and now it does this on start. Also, please - try to use the unity 2019.1 to test your sdks and try to use Custom Gradle Template with proguard enabled and using custom proguard file...

Exception: Facebook.Unity.CodelessUIInteractEvent.SetLoggerInitAndroid (): java.lang.NoSuchMethodError: no static method with name='setIsUnityInit'

Edit:

We are using Proguard with the following :

Adcolony For communication with AdColony's WebView

-keepclassmembers class * { @android.webkit.JavascriptInterface ; }

Adcolony Keep ADCNative class members unobfuscated

-keepclassmembers class com.adcolony.sdk.ADCNative* { ;}

Facebook SDK

-keep class com.facebook.unity.FB { *; } -keep class com.facebook.unity.FB.* { ; } -keep class com.google.android.gms.ads.MobileAds { *; }

GameService Rules

-keep class com.google.android.gms.* { ; } -keep class com.google.games.bridge.* { ; }

Don't obfuscate. We only need dead code striping.

-dontobfuscate

-keep class com.google.unity.* { ; }

-keepclassmembers class com.ironsource.sdk.controller.IronSourceWebView$JSInterface { public ; } -keepclassmembers class implements android.os.Parcelable { public static final android.os.Parcelable$Creator *; } -keep public class com.google.android.gms.ads. { public *; } -keep class com.ironsource.adapters.* { ; } -keep class com.ironsource.unity.androidbridge. { *; }

-dontwarn com.ironsource.mediationsdk. -dontwarn com.ironsource.adapters. -dontwarn com.moat. -keep class com.moat. { public protected private *; }

Keep filenames and line numbers for stack traces

-keepattributes SourceFile,LineNumberTable

Keep JavascriptInterface for WebView bridge

-keepattributes JavascriptInterface

Sometimes keepattributes is not enough to keep annotations

-keep class android.webkit.JavascriptInterface { *; }

Keep all classes in Unity Ads package

-keep class com.unity3d.ads.* { ; }

Keep all classes in Unity Services package

-keep class com.unity3d.services.* { ; }

-dontwarn com.google.ar.core. -dontwarn com.unity3d.services. -dontwarn com.ironsource.adapters.unityads.**

fsener commented 5 years ago

Encountering the same problem, any progress on this?

studentutu commented 5 years ago

Encountering the same problem, any progress on this?

nothing yet...

KylinChang commented 5 years ago

Hey @studentutu , @fsener , sorry for the late reply. Can you try adding -keep class com.facebook.internal.* {*;} in the proguard file? The package name for FetchedAppSettingsManager.setIsUnityInit is com.facebook.internal