Использование службы распространения приложений Firebase приводит к ошибке "Приложение не установлено"

Я использую службу распространения приложений Firebase для платформы Android. Для автоматического распространения я настроил файл Gradle в соответствии с шагами, указанными в документации. Настройка и авторизация прошли успешно. Распространение тоже удачное. Но как только я загружаю приложение с помощью приложения Firebase App Tester для Android, это приводит к ошибке "Приложение не установлено". Это как для отладки, так и для варианта выпуска.

Я попытался установить приложение после отключения защиты Google Play, но проблема осталась. Может ли кто-нибудь помочь мне в этом?

12 ответов

Причина появления сообщения "Ошибка установки" или "Приложение не установлено" может быть разной, просто потому, что это единственная ошибка, которую вы можете получить при установке приложения. Я согласен, что это бесполезно.

Однако в большинстве случаев это связано с проблемой подписи. Вот несколько решений:

  1. Убедитесь, что вы использовали APK-файл с подписью выпуска для распространения Firebase. https://developer.android.com/studio/build/build-variants

  1. При создании подписанного APK вы можете выбрать подписи V1 или V2. Попробуйте использовать подпись V1. Подпись V2 была функцией, представленной в Android 7.0: https://developer.android.com/about/versions/nougat/android-7.0

  2. Убедитесь, что ваше приложение подписано правильно, проверив значения в вашем файле, app/build.gradle:

    android {
       ...
       defaultConfig {...}
       signingConfigs {
           release {
               storeFile file("myreleasekey.keystore")
               storePassword "password"
               keyAlias "MyReleaseKey"
               keyPassword "password"
           }
       }
       buildTypes {
           release {
               ...
               signingConfig signingConfigs.release
           }
       }
    

    }

И последнее, но не менее важное: убедитесь, что на вашем телефоне достаточно памяти для установки приложения, и что в настройках установлен флажок "Установить из неизвестных источников".

Я столкнулся с этой проблемой с клиентом, и оказалось, что ей нужно удалить версию приложения, которая была на ее телефоне, чтобы заставить это работать. (Это была ранее установленная версия, отличная от Firebase)

Что касается моего случая, когда я сделал ./gradlew appDistributionUploadDebug, он просто взял любой найденный APK-файл и загрузил его. Другими словами, он просто загрузил часть оказавшегося там приложения, которая была значительно меньше, чем должна была быть.

./gradlew assembleDebug; ./gradlew appDistributionUploadDebug решил проблему.

Я была такая же проблема. Поэтому я проверил журналы и обнаружил следующее, когда установка не удалась:

2019-10-07 10:20:29.941 771-2406/? E/ResolverController: No valid NAT64 prefix (114, <unspecified>/0)
2019-10-07 10:20:30.740 1278-1537/? W/NativeHelper: Failure copying native libraries [errorCode=-113]
2019-10-07 10:20:30.740 1278-1537/? E/PackageInstallerSession: Commit of session 392193568 failed: Failed to extract native libraries, res=-113

Поэтому я предположил, что с моим APK-файлом что-то не так. Я нажал Build -> Build APK(s) и загрузил этот файл в Firebase, когда это было сделано. Я не уверен, что действительно прошел процесс сборки в первый раз или просто взял apk прямо из папок сборки. Возможно, он был поврежден или просто не тот. Я рекомендую просто проделать эти шаги еще раз и убедиться, что вы создали правильный и загрузили его.

Убедитесь, что вы предоставляете signingConfigs к каждому из ваших вариантов.

добавить в свое приложение build.gradleс android отметьте следующий код:

signingConfigs {
    config {
        keyAlias '<YOUR_ALIES>'
        keyPassword '<YOUR_KEY_PASSWORD>'
        storeFile file('<YOUR_KEY_PATH>') // Usually use '../keystore.key'
        storePassword '<YOUR_STORE_PASSWORD>'
    }
}

Наконец, добавьте следующую строку в каждый вариант в вашем buildTypes в вашем приложении build.gradle:

signingConfig signingConfigs.config

Надеюсь это поможет.

Это случайная ошибка (видимо).

Что сработало для меня, так это удаление вручную build папка внутри app модуль (простая очистка проекта не приводит к удалению всего скомпилированного кода), снова соберите APK, повторно загрузите его в FAD, а затем APK будет успешно установлен.

Причина этого в том, что созданный вами APK может быть несовместим со всеми архитектурами мобильных ЦП. Под архитектурой ЦП я имею в виду, что некоторые APK совместимы только с устройствами ARM или x86 Android. Следовательно, в файле градиента уровня приложения в <project_dircectory>/android/app/build.gradle называется universalApk который должен иметь значение true, чтобы при создании APK из студии Android или из интерфейса командной строки он генерировал для вас универсальный APK, совместимый со всеми архитектурами ЦП и, следовательно, с несколькими устройствами Android, независимо от того, какая архитектура ЦП используется Android устройство поддерживает.

Параметр universalApk можно найти, в частности, в объекте JSON разбиения с build.gradle вышеупомянутый файл:

         splits {
        abi {
            reset()
            enable enableSePerCPUArchitecture
            universalApk true  // If true, also generate a universal APK
            include "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
        }
    }

Вы также можете настроить, как вы видите в том же объекте JSON, другую архитектуру ЦП, которую вы хотели бы включить для отдельной поддержки при создании APK. В данном случае я добавил: "armeabi-v7a", "x86", "arm64-v8a", "x86_64", что означает, что когда я прохожу процесс создания APK, отдельный APK будет создан для каждой из этих архитектур ЦП. (что полезно, если вы хотите поддерживать только определенные устройства Android и уменьшать размер APK).

Очевидно, что одним из недостатков использования универсального APK является то, что размер APK будет значительно больше, чем размер APK отдельных архитектур, просто потому, что мы вмещаем несколько устройств Android.

Таким образом, это решение, которое я нашел, потому что изначально я загрузил только APK x86, который вызвал ту же ошибку на моем устройстве Android, потому что он не был совместим с x86. Как только я сгенерировал универсальный релиз APK через Android studio и пригласил себя протестировать приложение на моем Android-устройстве с помощью Firebase App Distribution, все заработало!

Попробовав все другие решения, выяснилось, что проблема в моем случае заключалась в том, что не хватало доступного места для хранения - установщик пакета и в этом случае выдает общий "Ошибка установки". Надеюсь, это сэкономит кому-то еще потраченные мной часы.

Я столкнулся с этой проблемой. Это может быть связано с нехваткой места во внутренней памяти телефона. Я попытался освободить место, а затем установил приложение. Это сработало для меня.

Для меня отладочный apk не работает с Firebase App Distribution, но релизный apk работает. Вы можете отключить proguard вbuild.gradleфайл:

      buildTypes {
    release {
        minifyEnabled false
    }
}

У меня у bitrise была проблема с ФАЙЛОМ КЛЮЧЕЙ ANDROID при подписании кода. Почему-то отсутствовали пароль хранилища ключей, псевдоним и закрытый ключ загрузки.

Переход к рабочим процессам -> подписание кода -> файл хранилища ключей Android и повторный ввод значений заставили его работать

Мы столкнулись с этой ошибкой, когда производственная сборка нашего приложения была доступна на рассматриваемых устройствах.

Простое удаление производственного приложения сработало отлично - мы могли без проблем установить либо наши тестовые /dev/ оба приложения.

Другие вопросы по тегам