首页 > 解决方案 > Unity Android 将 com.facebook.FacebookContentProvider 添加到不应该的清单中

问题描述

我正在开发一个具有一些非常基本功能的测试应用程序来证明一些概念。我没有包含任何 Facebook 插件或 SDK,我也不想要它们。我只想在实际的 Android 设备上测试一些 Google Play 服务。但是,当我构建 apk 并从 Android Studio 运行它时,AndroidManifest 具有一系列引用 com.facebook 的活动标签,以及一个名为 com.facebook.FacebookContentProvider 的提供程序。

如果我将 apk 部署到我的设备,我会收到以下错误:

java.lang.RuntimeException:无法获取提供程序 com.facebook.FacebookContentProvider:java.lang.ClassNotFoundException:在路径上找不到类“com.facebook.FacebookContentProvider”:DexPathList [[zip 文件“/data/app/com. DanGame.TestApp-KgL6Jybi9sG1Q0LHnxAnNA==/base.apk"],nativeLibraryDirectories=[/data/app/com.DanGame.TestApp-KgL6Jybi9sG1Q0LHnxAnNA==/lib/arm, /data/app/com.DanGame.TestApp-KgL6Jybi9sG1Q0LHnxAnNA== /base.apk!/lib/armeabi-v7a, /system/lib]]

我可以硬着头皮加入 Facebook SDK,或者在清单生成后尝试手动调整清单。但我真正需要知道的是如何让 Unity 停止生成不良清单?必须有一种方法可以在没有 Facebook 的情况下从 Unity 构建功能正常的 Android apk。

标签: androidfacebookandroid-studiounity3dandroid-manifest

解决方案


看起来问题是缓存问题。我在 Unity 中构建 APK 并从 Android Studio 对其进行分析。但 Android Studio 将 APK 缓存在 Users 目录中,因此在 Unity 中重新编译 apk 不会重新加载 Android Studio 项目。尽管我已经从 Unity 的清单中清除了对 Facebook 的所有引用,但 Android Studio 使用的是旧的 apk。


推荐阅读