Я разрабатываю тестовое приложение с довольно простой функциональностью, чтобы проверить несколько концепций. У меня нет плагинов или SDK для Facebook, и я не хочу их использовать. Я просто хочу протестировать некоторые сервисы Google Play на реальном устройстве Android. Однако, когда я создаю apk и запускаю его из Android Studio, AndroidManifest имеет серию тегов действий со ссылками на com.facebook и поставщика с именем com.facebook.FacebookContentProvider.
Если я разверну apk на свое устройство, я получаю такую ошибку:
java.lang.RuntimeException: Unable to get provider com.facebook.FacebookContentProvider: java.lang.ClassNotFoundException: Didn't find class "com.facebook.FacebookContentProvider" on path: DexPathList[[zip file "/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 перестать генерировать плохой манифест? Должен быть способ создать работающий apk для Android из Unity без Facebook.
Похоже, проблема связана с кешированием. Я создавал APK в Unity и профилировал его из Android Studio. Но Android Studio кеширует APK в каталоге Users, поэтому перекомпиляция apk в Unity не приведет к перезагрузке проекта Android Studio. Несмотря на то, что я удалил все ссылки на Facebook из своего манифеста в Unity, Android Studio использовала старый apk.