Установка Eclipse не удалась из-за неверного файла APK? - PullRequest
9 голосов
/ 03 ноября 2011

Я использую Eclipse для разработки приложений для Android, но при запуске проектов вижу эту ошибку:

Installation failed due to invalid APK file!

Ответы [ 10 ]

8 голосов
/ 10 ноября 2012

Одна из наиболее распространенных причин, по которой мы видим ошибку «Invalid APK file», связана с непреднамеренным изменением конфигурации AndroidManifest.xml, в результате которой на вашем устройстве устанавливаются дублированные файлы APK.

Возможности 1:проблема с версией. Увеличьте минимальную и целевую версии SDK и попробуйте снова.

Возможности 2: несоответствие пакетов. Имя пакета в AndroidManifest.xml не соответствует фактическому пакету, которыйВаша деятельность связана с.

Три шага для решения этой проблемы:

Шаг 1. Проверьте файл заголовка из вашего AndroidManifest.xml.

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.yourdomain.yourapp"
    android:versionCode="1"
    android:versionName="1.0" >

Шаг 2.Убедитесь, что имя вашего пакета в папке src точно такое же, как и то, которое вы проверили на шаге 1.

например, com.yourdomain.yourapp

Шаг 3. Проверьте оператор включения пакета из вашей активности запуска(например, MainActivity.java):

package com.yourdomain.yourapp;

Если вышеупомянутые решения не работают, пожалуйста, опубликуйте свой Logcat для получения дополнительной помощи.

8 голосов
/ 14 декабря 2011

В моем случае это было вызвано ошибками в файле .jar, включенном в мою библиотеку. Файл .jar был тем, который я создал, и поэтому я смог это исправить. Вот описание того, как возникла проблема и как я ее исправил:

  • Я внес изменения в другой проект (не проект, который не удалось установить)
  • Экспортированный в .jar включенный ВСЕ файлы в проекте (что было ошибкой)
  • полученный .jar заменил тот, который уже включен в мой проект
  • Произошли ошибки

чтобы исправить это:

  • Реэкспортированный файл .jar, включающий только папку src
  • перестроен и установлен просто отлично.

Включение всех файлов, которые не были частью папки src, привело к нескольким дубликатам в проекте и .jar:

  • Пример: несколько файлов androidmanifest.xml один локальный и один внутри .jar

Это сделало .apk недействительным. Надеюсь, это кому-нибудь поможет. ПРИМЕЧАНИЕ: это решение будет работать только в том случае, если у вас есть библиотечные файлы, которые вы изменили и скомпилировали самостоятельно и допустили ту же ошибку, что и я, когда я включил ненужные папки.

3 голосов
/ 28 октября 2013

Попробуйте через ADB:

cd /data/local
mv tmp tmp-old
mkdir /mnt/sdcard/tmp
ln -s /mnt/sdcard/tmp ./tmp
3 голосов
/ 14 августа 2013

Полностью согласен с ответом @melvkim. Одна вещь, которую нужно добавить.

Также, пожалуйста, убедитесь, что вы не используете запрещенные символы в имени вашего пакета. E.g.:

Неправильные названия пакетов

  • com.domain.365days - вы не можете начинать любую часть имени пакета с цифры (...)
  • com.domain._365days - (...) ни специальный символ

Правильные названия пакетов

  • com.domain.days365 - начинать все части названия вашего пакета с буквы

Пожалуйста, смотрите ваш logcat очень внимательно. В Eclipse IDE может не отображаться какая-либо ошибка или предупреждение, но logcat отобразит.

0 голосов
/ 15 декабря 2016

Для меня проблема заключалась в том, что я использовал неправильный путь к интересующему файлу.Другими словами, файл apk не существует!Почему чертова штука не может просто сказать мне, что не может найти файл?Argh!Ах хорошо.Может быть, это поможет кому-то еще.Дважды проверьте, чтобы убедиться, что ваш путь к файлу правильный!

0 голосов
/ 05 ноября 2014

В моем случае проблема возникла из-за несовпадения в файле манифеста Android и уровне целевого API Project Build

. Я изменил значение targetSdkVersion с 19 на 21.

Такжеизменение целевой версии SDK с помощью шагов given below

  1. щелкните правой кнопкой мыши имя проекта
  2. выберите свойства
  3. измените «Цель сборки проекта» на уровень API 21
0 голосов
/ 14 июля 2014

В моем случае я решил проблему, изменив свой AndroidManifest.xml

Я изменился с

<uses-sdk
    android:minSdkVersion="11"
    android:targetSdkVersion="19" />

до

<uses-sdk
    android:minSdkVersion="11"
    android:targetSdkVersion="20" />

потому что eclipse дал мне предупреждение ни за последнюю версию Android.

Я использую последнюю версию Eclipse SDK v23 а у меня девайс Nexus 7 2012 KitKat 4.4.4

0 голосов
/ 01 сентября 2013

Проверьте, что версия вашей платформы на телефоне или эмуляторе (зависит от того, где вы тестируете) должна быть такой же или большей, чем версия, упомянутая в вашем AndroidManifest.xml.

0 голосов
/ 12 мая 2012

Для меня это была другая проблема, вызвавшая эту ошибку:

В моем проекте использовались некоторые собственные библиотеки JNI, встроенные в APK.Чтобы сэкономить место во время тестов, я отключил версию lib \ armeabi, оставив только более новый вариант lib \ armeabi-v7a.На новых устройствах все прошло нормально, но тестирование на старом G1 привело к этой ошибке.

0 голосов
/ 03 ноября 2011

Я уверен, что это проблема версии.Сначала проверьте, имеет ли ваш эмулятор / телефон правильную версию, для которой вы разрабатываете.

...