Android 统一facebook sdk';没有';“找不到类”;com.facebook.facebook内容提供商“';还有什么建议吗?

Android 统一facebook sdk';没有';“找不到类”;com.facebook.facebook内容提供商“';还有什么建议吗?,android,facebook,unity3d,Android,Facebook,Unity3d,如何复制此错误 创建一个新的Unity项目 导入facebook sdk unitypackage 通过facebook\Edit Settings为facebook设置应用程序Id 使用Assets\External dependency manager\Android,按“解析依赖项”,然后按“删除解析库”(否则构建将在渐变阶段失败) 构建并运行 当应用程序尝试运行时,我立即在手机上收到错误消息“应用程序已停止工作” 在日志中看到这个错误 Caused by: java.lang

如何复制此错误

  • 创建一个新的Unity项目

  • 导入facebook sdk unitypackage

  • 通过facebook\Edit Settings为facebook设置应用程序Id

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

  • 构建并运行

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

    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]]
    
我尝试过的建议修复方法

  • 我尝试了新旧facebook SDK和新旧Unity版本的不同组合

  • 我试着从一些不同的机器构建到不同的Android设备

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

  • 我在“发布设置”下的播放器设置中设置了一个自定义Proguard文件,并在该文件中添加了以下两行

    -keep class com.facebook.internal.* {*;}
    -keep class com.facebook.* {*;}
    
      -keep public class com.facebook.**{public *; } 
      -keep public class com.facebook.internal.**{ public *; }
    

  • 因此,我尝试了所有建议的修复方法及其各种组合。我不知道我还能做什么。有人能推荐其他方法来尝试吗?

    好的,这里有一个具体的方法,我是在它起作用的地方采用的

    • 统一版本:2019.3.15f1

    • Facebook SDK版本:7.21.2

    • 使用PlayServicesResolver解析库

    • 不删除已解析的库

    • 在“发布设置”下的“播放机设置”中设置自定义Proguard文件,并将以下两行添加到该文件中

      -keep class com.facebook.internal.* {*;}
      -keep class com.facebook.* {*;}
      
        -keep public class com.facebook.**{public *; } 
        -keep public class com.facebook.internal.**{ public *; }
      
    • 从mainTemplate.gradle中注释掉这些行

           com.android.support:appcompat-v7
           com.android.support:support-v4
           com.android.support:customtabs
      
    所以你的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**}`
    

    好的,这里有一个具体的方法,我遵循它的工作原理

    • 统一版本:2019.3.15f1

    • Facebook SDK版本:7.21.2

    • 使用PlayServicesResolver解析库

    • 不删除已解析的库

    • 在“发布设置”下的“播放机设置”中设置自定义Proguard文件,并将以下两行添加到该文件中

      -keep class com.facebook.internal.* {*;}
      -keep class com.facebook.* {*;}
      
        -keep public class com.facebook.**{public *; } 
        -keep public class com.facebook.internal.**{ public *; }
      
    • 从mainTemplate.gradle中注释掉这些行

           com.android.support:appcompat-v7
           com.android.support:support-v4
           com.android.support:customtabs
      
    所以你的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**}`