Unity facebook sdk '没有找到类“com.facebook.FacebookContentProvider”'对此还有更多建议吗?

Guy*_*ito 5 android facebook unity-game-engine

如何重现此错误...

  • 创建一个新的 Unity 项目。

  • 导入facebook sdk unitypackage

  • 通过 Facebook\Edit Settings 设置您的 Facebook 应用程序 ID

  • 使用 Assets\External dependency manager\Android,按“解决依赖项”,然后按“删除已解析的库”(否则构建将在 gradle 阶段失败)

  • 构建并运行。

  • 当应用程序尝试运行时,我立即在手机上收到错误消息“应用程序已停止工作”,并在日志中看到此错误......

    Caused by: java.lang.ClassNotFoundException: Didn't find class "com.facebook.FacebookContentProvider" on path: DexPathList[[zip file "/data/app/com.SandwichGeneration.MakeASquare--nLEHpzOYlwW6XKmGzPfIw==/base.apk"],nativeLibraryDirectories=[/data/app/com.SandwichGeneration.MakeASquare--nLEHpzOYlwW6XKmGzPfIw==/lib/arm64, /data/app/com.SandwichGeneration.MakeASquare--nLEHpzOYlwW6XKmGzPfIw==/base.apk!/lib/arm64-v8a, /system/lib64, /system/vendor/lib64]]
    
    Run Code Online (Sandbox Code Playgroud)

我从这里尝试过的建议修复

  1. 我尝试过旧版或新版 facebook sdks 以及旧版或新版 Unity 的不同组合。

  2. 我尝试过从几台不同的机器构建到不同的 Android 设备。

  3. 我已经删除了 facebook sdk 中包含的外部依赖管理器并使用了这个。为了解决这个问题,我必须在发布设置下的播放器设置中设置一个“自定义 Gradle 属性模板”。

  4. 我在发布设置下的播放器设置中设置了一个自定义 Proguard 文件,并将以下两行添加到该文件中。

    -keep class com.facebook.internal.* {*;}
    -keep class com.facebook.* {*;}
    
    Run Code Online (Sandbox Code Playgroud)

所以我尝试了所有建议的修复方法及其各种组合。我不知道我还能做什么。有人可以建议尝试其他方法吗?

Guy*_*ito 0

好的,这是我遵循的一种有效的具体方法。

  • Unity版本:2019.3.15f1

  • Facebook SDK版本:7.21.2

  • 使用 PlayServicesResolver、Resolve 库

  • 不要删除已解析的库

  • 在发布设置下的播放器设置中设置一个 Custom Proguard 文件,并将以下两行添加到该文件中。

      -keep public class com.facebook.**{public *; } 
      -keep public class com.facebook.internal.**{ public *; }
    
    Run Code Online (Sandbox Code Playgroud)
  • 注释掉 mainTemplate.gradle 中的这些行

         com.android.support:appcompat-v7
         com.android.support:support-v4
         com.android.support:customtabs
    
    Run Code Online (Sandbox Code Playgroud)

所以你的 mainTemplate.gradle 看起来像这样......

    `// Android Resolver Repos End
    apply plugin: 'com.android.library'

    dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])
        implementation 'com.google.android.gms:play-services-ads-identifier:17.0.0' 
    // Android Resolver Dependencies Start
        //implementation 'com.android.support:appcompat-v7:25.3.1' // Facebook.Unity.Editor.AndroidSupportLibraryResolver.addSupportLibraryDependency
        //implementation 'com.android.support:support-v4:25.3.1' // Facebook.Unity.Editor.AndroidSupportLibraryResolver.addSupportLibraryDependency
        //implementation 'com.android.support:customtabs:25.3.1' // Facebook.Unity.Editor.AndroidSupportLibraryResolver.addSupportLibraryDependency

        implementation 'com.facebook.android:audience-network-sdk:6.0.0' // Assets/IronSource/Editor/ISFacebookAdapterDependencies.xml:8
        implementation 'com.facebook.android:facebook-applinks:[7.1.0, 8)' // Assets/FacebookSDK/Plugins/Editor/Dependencies.xml:6
        implementation 'com.facebook.android:facebook-share:[7.1.0, 8)' // Assets/FacebookSDK/Plugins/Editor/Dependencies.xml:8
        implementation 'com.android.support:cardview-v7:25.3.1' // Facebook.Unity.Editor.AndroidSupportLibraryResolver.addSupportLibraryDependency
        implementation 'com.facebook.android:facebook-gamingservices:[7.1.0, 8)' // Assets/FacebookSDK/Plugins/Editor/Dependencies.xml:9
        implementation 'com.parse.bolts:bolts-android:1.4.0' // Assets/FacebookSDK/Plugins/Editor/Dependencies.xml:4
        implementation 'com.facebook.android:facebook-core:[7.1.0, 8)' // Assets/FacebookSDK/Plugins/Editor/Dependencies.xml:5
        implementation 'com.facebook.android:facebook-login:[7.1.0, 8)' // Assets/FacebookSDK/Plugins/Editor/Dependencies.xml:7
        implementation 'com.google.android.gms:play-services-ads:19.4.0' // Assets/IronSource/Editor/ISAdMobAdapterDependencies.xml:8
        implementation 'com.google.android.gms:play-services-ads-identifier:17.0.0' // Assets/IronSource/Editor/IronSourceSDKDependencies.xml:17
        implementation 'com.google.android.gms:play-services-basement:17.2.1' // Assets/IronSource/Editor/IronSourceSDKDependencies.xml:25
    // Android Resolver Dependencies End
    **DEPS**}`
Run Code Online (Sandbox Code Playgroud)