«Приложение не установлено» Ошибка на Android - PullRequest
349 голосов
/ 19 ноября 2010

У меня есть программа, работающая в эмуляторе Android.Время от времени я создавал подписанный .apk и экспортировал его в свой HTC Desire для тестирования.Все было хорошо.

В моем последнем экспортированном .apk я получаю сообщение об ошибке «Приложение не установлено», когда я пытаюсь установить .apk.Он отлично работает на эмуляторах.

Поскольку я в основном тестировал на эмуляторах и только время от времени экспортировал в реальный телефон, я не уверен, когда это произошло.Какова вероятная причина того, что он не устанавливается на физический телефон, но работает нормально в эмуляторах?

Я попытался перезагрузить телефон и удалить существующий .apk, не устраняет ошибку.

Ответы [ 51 ]

2 голосов
/ 04 декабря 2017

В моем случае это потому, что Android Studio 3.0 устанавливает android:testOnly="true" для APK, которые создаются из release Варианта сборки.

https://commonsware.com/blog/2017/10/31/android-studio-3p0-flag-test-only.html

Итак, бегите ./gradlew assembleRelease Решите мою проблему

1 голос
/ 16 июля 2013

Когда со мной произошла эта проблема, я исправил ее, удалив некоторые ненужные файлы, которые у меня были в папке проекта, например хранилище ключей.

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

1 голос
/ 02 ноября 2016

В моем случае мое предыдущее выпущенное приложение было подписано другим ключом, поэтому я удалил его, но на моем тестовом телефоне (LG G4 H-818) 2 пользователя существует поэтому предыдущее приложение все еще установлен на моем телефоне и не удален правильно! поэтому, когда я попытался установить его снова, это не удалось ...

Итак, я попытался изменить пользователя и удалить предыдущее приложение, наконец приложение установлено правильно.

Надеюсь, это поможет вам в будущем:)

1 голос
/ 06 сентября 2018

откройте AndroidMainfest, затем добавьте verionCode, versionName в тег приложения и убедитесь, что отладочная способность равна false:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="...">

<application
    ...
    android:debuggable="false"
    android:versionCode="1"
    android:versionName="1.0"
    tools:ignore="HardcodedDebugMode">
    ...
</application>

, затем откройте build.gradle (module: app) и убедитесь, что verionCodeversionName вышло и minsdk <= ваш мобильный SDK: </p>

defaultConfig {
    ...
    minSdkVersion 19
    targetSdkVersion 28
    versionCode 1
    versionName "1.0"
   ...
}

просмотреть источники: https://developer.android.com/studio/publish/

& https://developer.android.com/studio/publish/preparing

& https://developer.android.com/studio/publish/versioning

и https://developer.android.com/studio/publish/app-signing

1 голос
/ 04 февраля 2019

Если вы пытаетесь установить apk напрямую с Google Диска, просто перезагрузка устройства решила проблему для меня.

1 голос
/ 26 июня 2012

У меня была такая же ошибка, как эта строка в моем файле манифеста Android.

android:permission="android.permission.INSTALL_LOCATION_PROVIDER"

Я удалил строку, и это решило мою проблему. Надеюсь, это поможет

1 голос
/ 25 июня 2018

В моем случае это было потому, что я использовал альфа-версию библиотеки поддержки 28. Похоже, Google помечает эти предварительные версии как testOnly. Если вы действительно хотите выпустить так (например, вы хотите запустить внутреннюю бета-версию, как я), вы можете добавить эту строку в свой файл gradle.properties:

android.injected.testOnly=false
0 голосов
/ 26 декабря 2018

Я сталкивался с этой проблемой в разных формах, но на этот раз она была новой:

В этом случае у меня возникла коллизия имен провайдеров - в моем приложении и в другом приложении было одно и то же имя провайдера,

0 голосов
/ 01 июня 2012

Я подписал приложение с двумя разными сертификатами, поэтому удаление старой версии со старым сертификатом и последующая переустановка новой решило проблему для меня

0 голосов
/ 28 июля 2018

В моем случае я удалил Бесполезные разрешения, которые не требуются

Мне нужно только 1 разрешение

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

И удалите ненужные разрешения, которые не требуются и начали выдавать эту ошибку

<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.INSTALL_LOCATION_PROVIDER" />
<uses-permission android:name="android.permission.CONTROL_LOCATION_UPDATES" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...