Android Studio получает неправильное имя пакета при запуске .apk

Я изменил имя своего пакета с com.mycompany.myapplication на com.mycompany.testapp.

Все строит отлично, но когда я пытаюсь запустить его на эмуляторе, я получаю:

Сессия была перезапущена Целевое устройство: NexusS [эмулятор-5554] Загрузка файла     локальный путь:/home/antony/AndroidStudioProjects/testappProject/testapp/build/apk/testapp-debug-unaligned.apk     удаленный путь:/data/local/tmp/com.mycompany.myapplication Установка com.mycompany.myapplication КОММУНАЛЬНАЯ КОМАНДА УСТРОЙСТВА: pm install -r "/data/local/tmp/com.mycompany.myapplication" pkg:/data/local/tmp/com.mycompany.myapplication Успех

Запуск приложения: com.mycompany.myapplication/com.mycompany.testapp.MainActivity. КОМАНД УСТРОЙСТВА ОБОЛОЧКИ: am start -D -n "com.mycompany.myapplication/com.mycompany.testapp.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER Начало: Intent {act = android.intent.action.MAIN cat = [android.intent.category.LAUNCHER] cmp = com.mycompany.myapplication/com.mycompany.testapp.MainActivity} Тип ошибки 3 Ошибка: класс действия {com.mycompany.myapplication/com.mycompany.testapp.MainActivity} не существует.

Обратите внимание, что удаленный путь ^^^ неверен.

Если я перейду к эмулятору, я могу запустить приложение из меню, просто я получаю эту ошибку, когда пытаюсь запустить приложение из Android Studio.

Я также вижу в logcat, в правом верхнем углу раскрывающийся список предлагает мне "No Filters" или "app: com.mycompany.myapplication". Поэтому я не могу даже отлаживать правильно.

Откуда берутся эти ссылки на com.mycompany.myapplication, и как я могу это исправить?

Ответ 1

Я отвечу, на всякий случай кто-то застрянет с этим. Как ни странно, перезагрузка Android Studio решила проблему. Ничего сложнее, не менее очевидно.

Ответ 2

Я попытался перезапустить Android Studio, но проблема все еще существовала.

Тогда решение работает со мной.

  • Удалить каталог ~/.gradle/caches/. Это нормально, если Android Studio открывается. (Обратитесь pm, установив неправильное имя пакета)
  • Нажмите "Sync project with Gradle files" на Android Studio
  • Запустите проект, и удаленный путь будет правильным.

Ответ 3

Вот как я это решил. Очень просто.

Нажмите кнопку "Синхронизировать проект с файлами Gradle" в верхней части окна.

'Sync Project with Gradle Files' button screenshot

Посмотрите на эту кнопку, если вы используете более новую версию Android Studio:

'Sync Project with Gradle Files' button in newer AS screenshiot

'Sync Project with Gradle Files' button in latest AS screenshiot

Ответ 4

Я сделал все упомянутые вещи, но никакого эффекта. Затем я нашел что-то в файле build.gradle и изменил его в соответствии с моим новым пакетом. Это сработало для меня.

    defaultConfig {
    applicationId "com.*****.newPackageId"
    minSdkVersion 11
    targetSdkVersion 20
}

Ответ 5

Очистка кеша и перезагрузка работали для меня.

Перейдите в меню Android Studio и выберите параметр Invalidate Caches/Restart...

Ответ 6

В новой версии AndroidStudio, такой как 0.9.1, это решение работает со мной:

1) удалить ~/.greadle/2.1/taskArtifacts
2) чистый проект
3) запустить проект

Ответ 7

Что я наконец сделал, это изменение "идентификатора приложения" в build.gradle, сборке и запуске. Затем удалите приложения с телефона и верните идентификатор приложения обратно

Ответ 8

Моя проблема заключалась в том, что некоторые из моих XML файлов (в частности, AndroidManifest.xml) изменили свои заголовки.

Проблемный заголовок:

<?xml code="1.0" encoding="utf-8"?>

Измените это на:

<?xml version="1.0" encoding="utf-8"?>

Обратите внимание, как проблемный заголовок показывает code="1.0" вместо version="1.0".

Ответ 9

Если ваше приложение получает то же имя, что и ваше MainActivity, и вы пробовали его, попробуйте удалить

Android: метка = "MyMainActivity"

из Mainactivity, затем запустите приложение. Это сработало для меня:)

Ответ 10

Пробовал удалить папку taskArtifacts, недействительность,... ничего не работало.

Что в конечном итоге работает для меня как принудительное решение Gradle для меня. (Просто добавила пустую новую строку в build.gradle, чтобы она попросила меня синхронизировать и после синхронизации она работала).

Ответ 11

У меня была такая же проблема.

  • Прежде всего проверьте манифест.
  • Затем проверьте свои gradle файлы
  • И, наконец, возможно, стоит проверить файлы java 'test' и 'androidTest'.

Если вы не знаете, что делать с этими файлами, просмотрите более полные ответы выше.

Ответ 12

  1. Построить APK.
  2. Перенесите это на устройство.
  3. Установите это.
  4. Теперь вы можете установить то же приложение, используя ADB.