Intereting Posts
Что такое «пакет» в приложении для Android ViewRootImpl: ViewPostImeInputStage processPointer 0 на OnItemClick из списка в android Как указать минимальную и / или максимальную длину в RemoteInput Есть ли способ иметь 1 базу данных Firebase для 2 приложений с разными именами пакетов? Как читать штрих-коды с помощью Android Phonegap? Файловая система только для чтения на Android Что такое XML-свойство xmlns: app? Использование предпочтений списка в Android JNI Android – Преобразование char * в массив байтов и возврат его в java Идентификатор ресурса не найден для атрибута fontFamily в пакете android При запуске в режиме отладки приложение Android перестает работать Appium против Espresso для автоматизированной системы тестирования Зачем использовать службу android? Программа Hello World для Google Glass – шаг за шагом Ориентация / разработка для нескольких мобильных платформ с одним языком программирования (C #)? Затрат и выгод?

Android Studio устанавливает APK для каждого модуля

У меня есть проект, созданный с помощью Gradle в Android Studio v 0.3.2. Мой проект имеет зависимости от двух других модулей (андроидная библиотека). Структура проекта хорошо определена с помощью файлов build.gradle. Проблема в том, что … когда я запускаю проект на Android-устройстве, я устанавливаю 3 apk на моем устройстве. Один из них – основной проект (единственный правильный), а два других – импортированные модули (эти два я не хочу устанавливать). Как я могу это достичь? Или что я делаю неправильно?

Структура проекта:

  • MyLibModule
  • MainProject
  • MainProject-> libraries-> MyOtherModule

Где MyLibModule находится на том же пути, что и основной проект, потому что мне также нужен этот модуль в другом проекте.

Просто чтобы быть ясным: вся сборка проекта в порядке , все зависимости в порядке, но почему я получаю 3 APK на моем устройстве?

Solutions Collecting From Web of "Android Studio устанавливает APK для каждого модуля"

После целого дня, борющегося с этой проблемой, я нашел причину этого странного поведения. Проблема заключалась в проявлении библиотечного модуля. Прежде чем я переключился на студию Android, я использовал Eclipse. И у меня была testActivity, объявленная в манифесте проекта библиотеки. Удаление всех тестовых действий из манифеста из моих библиотечных модулей решило проблему. Теперь Android Studio устанавливает только APK MainProject.

Некоторый код: манифест MyLibModule:

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.test.mylibmodule" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="7"/> <application> <activity android:name=".TestActivity" android:label="@string/app_name"> </activity> </application> </manifest> 

Изменился на:

 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.test.mylibmodule" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="7"/> <application> </application> </manifest> 

…. И то же самое для MyOtherModule.

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

Удалить фильтр намерений из запуска вашей библиотеки

 <application> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> 

Изменился на

 <application> <activity android:name=".MainActivity"/> </application> 

Это потому, что ваши библиотеки определены в файлах build.gradle как приложения, а не библиотеки. Посмотрите на эту строку:

 apply plugin: 'android' 

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

 apply plugin: 'android-library' 

Возможно, вам придется внести другие изменения в файл сборки, так как не все, что относится к приложениям, может быть указано в файле сборки библиотеки. См. http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Library-projects для получения дополнительной информации.