Как удалить модуль в андроид студио
Перейти к содержимому

Как удалить модуль в андроид студио

  • автор:

Как удалить модуль в андроид студио

Теперь создадим первое приложение в среде Android Studio для операционной системы Android. Откроем Android Studio и на начальном экране выберем пункт New Project :

Первый проект в Android Studio

При создании проекта Android Studio вначале предложит нам выбрать шаблон проекта:

Выбор Empty Activity в Android Studio

Android Studio предоставляет ряд шаблонов для различных ситуаций. Для создания приложения на Java выберем в этом списке шаблон Empty Views Activity , который предосавляет самый простейший фукционал, необходимый для начала, и нажмем на кнопку Next .

После этого отобразится окно настроек нового проекта:

Настройка проекта в Android Studio

В окне создания нового проекта мы можем установить его начальные настройки:

  • В поле Name вводится название приложения. Укажем в качестве имени название HelloApp
  • В поле Package Name указывается имя пакета, где будет размещаться главный класс приложения. В данном случае для тестовых проектов это значение не играет ольшого значения, поэтому установим com.example.helloapp .
  • В поле Save Location установливается расположение файлов проекта на жестком диске. Можно оставить значение по умолчанию.
  • В поле Language в качестве языка программирования укажем Java (будьт внимательны, так как по умолчанию в этом поле стоит Kotlin)
  • В поле Minimum SDK указывается самая минимальная поддерживаемая версия SDK. Оставим значение по умолчанию. Минимальная версия означает, что наше приложение можно будет запустить начиная с этой версии. На более старых устройствах запустить будет нельзя. Стоит учитывать, что чем выше версия SDK, тем меньше диапазон поддерживаемых устройств.

Далее нажмем на кнопку Finish, и Android Studio создаст новый проект:

Новый проект в Android Studio

Вначале вкратце рассмотрим структуру проекта, что он уже имеет по умолчанию

Структура проекта в Android Studio

Проект Android может состоять из различных модулей. По умолчанию, когда мы создаем проект, создается один модуль — app . Модуль имеет три подпапки:

  • manifests : хранит файл манифеста AndroidManifest.xml , который описывает конфигурацию приложения и определяет каждый из компонентов данного приложения.
  • java : хранит файлы кода на языке java, которые структурированы по отдельным пакетам. Так, в папке com.example.helloapp (название которого было указано на этапе создания проекта) имеется по умолчанию файл MainActivity.java с кодом на языке Java, который представляет класс MainActivity, запускаемый по умолчанию при старте приложения
  • res : содержит используемые в приложении ресурсы. Все ресурсы разбиты на подпапки.
    • папка drawable предназначена для хранения изображений, используемых в приложении
    • папка layout предназначена для хранения файлов, определяющих графический интерфейс. По умолчанию здесь есть файл activity_main.xml , который определяет интерфейс для класса MainActivity в виде xml
    • папки mipmap содержат файлы изображений, которые предназначены для создания иконки приложения при различных разрешениях экрана.
    • папка values хранит различные xml-файлы, содержащие коллекции ресурсов — различных данных, которые применяются в приложении. По умолчанию здесь есть два файла и одна папка:
      • файл colors.xml хранит описание цветов, используемых в приложении
      • файл strings.xml содержит строковые ресурсы, используемые в приложении
      • папки themes хранит две темы приложения — для светлую (дневную) и темную (ночную)

      Отдельный элемент Gradle Scripts содержит ряд скриптов, которые используются при построении приложения.

      Во всей этой структуре следует выделить файл MainActivity.java, который открыт в Android Studio и который содержит логику приложения и собственно с него начинается выполнение приложения. И также выделим файл activity_main.xml , который определяет графический интерфейс — по сути то, что увидит пользователь на своем смартфоне после загрузки приложения.

      Запуск проекта

      Созданный выше проект уже содержит некоторый примитивный функционал. Правда, этот функционал почти ничего не делает, только выводит на экран строку «Hello world!». Тем не менее это уже фактически приложение, которое мы можем запустить.

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

      Режим разработчика на телефоне

      По умолчанию опции разработчика на смартфонах скрыты. Чтобы сделать их доступными, надо зайти в Settings > About phone (Настройки > О телефоне) (в Android 8 это в Settings > System > About phone (Настройки > Система > О телефоне) ) и семь раз нажать Build Number (Номер сборки) .

      Включение параметров разработчика на Android

      Теперь необходимо включить отладку по USB. Для этого перейдем в Settings > System > Advanced > Developer options или Настройки > Система > Дополнительно > Для разработчиков (в Android 8 это в Settings > System > Developer options или Настройки > Система > Для разработчиков ).

      Параметры разработчика на Android

      И включим возможность отладки по USB:

      Отладка по USB на Android

      Запуск приложения

      Подключим устройство с ОС Android (если мы тестируем на реальном устройстве) и запустим проект, нажав на зеленую стрелочку на панели инструментов.

      Запуск приложения в Android Studio

      Выберем устройство и нажмем на кнопку OK. И после запуска мы увидим наше приложение на экране устройства:

      Как удалить модуль из приложения?

      Всем здравствуйте. Скачал Android Studio 3.0.1 Пробую написать приложение. Создал проект, например 1арр. В проекте создал новый модуль 1арр1. Не получается на пустом экране сделать поле с выводом даты. Решил удалить этот модуль 1арр1, чтобы начать все сначала. Как удалить этот модуль, но оставить в системе всё то, что Android Studio подгрузил уже из сети?

      Отслеживать
      задан 2 янв 2020 в 15:13
      47 8 8 бронзовых знаков

      1 ответ 1

      Сортировка: Сброс на вариант по умолчанию

      Удалить модуль можно таким способом, переходим «File -> Project Structure» либо правой кнопкой нажать на модуль и перейти в настройки модуля, дальше видим такую картинку:

      введите сюда описание изображения

      выбираем ненужный модуль и удаляем. Модуля не будет в проекте, но его будет видно в project view, если же нужно удалить и файлы — выбираем модуль в project view и нажимаем на кнопку Delete. Вот вопрос по вашей проблеме.

      Отслеживать
      ответ дан 2 янв 2020 в 15:21
      17.9k 11 11 золотых знаков 25 25 серебряных знаков 58 58 бронзовых знаков

        Важное на Мете
      Похожие

      Подписаться на ленту

      Лента вопроса

      Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

      Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.2.12.4680

      ADB Uninstall плагин для Android Studio (IntelliJ IDEA)

      Так случилось, что я проиграл один спор и мне пришлось побриться налысо. Т.к. больше ничего не сдерживало поток свежих идей к моей голове, а на улицу показаться было стыдно, то я задался целью написать общественно-полезный плагин к одной из лучших сред разработки. Функционал прост, как паренный початок маиса, но очень нужный (ума не приложу, почему это еще не встроено по-умолчанию). Итак, сегодня я постараюсь поделиться опытом разработки плагина, который позволит вам элегантно удалять приложения над которыми вы работаете с подключенных андроид устройств.

      Для тех, кто просто хочет начать пользоваться, вот как это выглядит (вызывается по AltGraph+U):

      Качать отсюда (ver. 1.0.1): github.com/Ghedeon/ADB-Uninstall/releases
      Установка: Settings → Plugins → Install plugin from disk…
      Важно: Плагин сырой, поэтому очень надеюсь, что установившие отпишутся о проблемах. Буду исправлять по мере возможноcти. Отзывы, замечания, предложения по расширению функционала — все приветствуется!

      Приведу несколько повседневных сценариев андроид-разработчиков (особенно при работе в команде):

      Use-Case 1:

      Команда работает на одним приложением. Вы только что обменялись с кем-то девайсами и терпеливо ждете пока закончится установка. Что в итоге? Правильно, Failure [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES]. Логично, потому что на девайсе осталось приложение от коллеги, debug keys, которыми подписаны приложения у всех разные, соответсвенно update не проходит. Чертыхаясь, вы лезете в командную строку, набираете «adb uninstall » и почти физически ощущаете, как по байтам сносится программа.

      Use-Case 2:

      Все тоже самое, только после «adb uninstall» ничего не происходит, потому что у вас в системе не одно, а два устройства и adb не знает с какого удалять. Обняв мозгом всю глупость ситуации, в расстроенных чувствах вы набираете «adb devices» , получаете список устройств, потом «adb -s uninstall » и мир сдается перед вами.

      Use-Case 3:

      У вас несколько подключенных устройств и удалить нужно со всех. Ну, тут уже самый ленивый пойдет писать скрипт, который хоть как-то автоматизирует всю эту кухню.

      Use-Case 4:

      Никаких проблем нет, но вам просто лень писать «adb uninstall » .

      Решения:
      • Использовать один debug key всеми членами команды, тогда, с точки зрения системы, все будет выглядеть как-будто вы работаете за один компьютером.
      • Самописный скрипт и, желательно, достаточно умный, чтобы не спрашивать вас об имени пакета.

      Сам скрипт

      #!/bin/bash package=`grep -o 'package=".*"' AndroidManifest.xml | grep -o \".* | sed 's/"//g'` #adb uninstall $package adb devices | tail -n +2 | awk '' | xargs -I <> adb -s <> uninstall $package 
      Разработка

      О плагинах для IDEA на хабре уже писалось, чего только стоит монументальный перевод в семи частях от Lucyfer, поэтому общую структуру и настройку IDE я опущу. Для того чтобы добавить собственный пункт в меню и/или тулбар наследуемся от AnAction и переопределяем метод actionPerformed(). Первым делом узнаем абсолютный путь до Android SDK:

      ProjectRootManager.getInstance(event.getProject()).getProjectSdk().getHomePath(); 

      если к этому добавить /platfrom-tools , то у нас будет путь к рабочей папке, откуда можно будет запустить adb.

      Примечание

      Изначально я решил идти иным путем: понадеяться на то, что у пользователя правильно настроены все пути до Android SDK в переменных окружения и просто передать их в свой процесс. Тогда нам не нужен абсолютный путь, интерпретатор будет знать о командах, которые мы хотим запустить. Однако, под Linux и Mac OS переменные окружения, как известно, можно запихнуть в тысячу и одно сравнительно приличное место, что мешало мне c определенностью сказать, что у меня будет в System.getenv() . В общем, при тех или иных настройках системы этот метод заваливался и я решил отступить. Позже, покопавшись в исходниках андроидовского плагина для IDEA, я обнаружил, что они, как и я, используют абсолютные пути.

      Получаем список подключенных устройств:

      Process pr = Runtime.getRuntime().exec(toolPath + File.separator + "adb devices"); 

      Я использовал проженный Runtime.exec() из Java, но, в то же время, для подобных дел IDEA предлагает более кошерный GeneralCommandLine . По правде, этот переход у меня до сих пор в TODO и я буду очень признателен, если кто-то поделится опытом.

      Теперь нужно определить имя пакета, который будем удалять. Тут могут быть варианты. Андроид проект может содержать несколько исполняемых модулей с разными именами пакетов. Еще могут быть Library Projects, но о них речь не идет. Первое что пришло в голову — брать имя пакета из AndroidManifest.xml активного в данный момент модуля. Но это оказалось не очень удобно, работать вы можете не в том модуле, который хотите удалить, поэтому приходилось предварительно выделять мышкой нужный модуль. В итоге я остановился на куда более логичном решении — извлекать имя пакета из манифеста того модуля, который указан в текущей конфигурации запуска. Поясню. Как известно, чтобы установить приложение, нужна как минимум одна конфигурация запуска (Run Configuration). При создании этой самой Run Configuration, во вкладке General, вы указываете Module. Из манифеста указанного модуля и будем брать имя пакета. Если же конфигураций несколько — будем брать ту, что активна в данный момент.
      Получаем активную конфигурацию:

      RunManager runManager = RunManager.getInstance(event.getProject()); ModuleBasedConfiguration selectedConfiguration = (ModuleBasedConfiguration) runManager.getSelectedConfiguration().getConfiguration(); 

      Следующим шагом будет нахождение точного пути до папки с AndroidManifest.xml. В случае с проектами со старой структурой это будет просто корень модуля. Для gradle-based проектов же, это как правило currentModulePath/src/main, что необходимо учитывать. Сам корень модуля получаем следующим образом:

      Module module = selectedConfiguration.getConfigurationModule().getModule(); currentModuleFilePath = module.getModuleFilePath(); String currentModulePath = currentModuleFilePath.substring(0, currentModuleFilePath.lastIndexOf(File.separator)); 

      Распарсить найденный AndroidManifest.xml тем же StAX парсером, на предмет атрибута package, уже тривиальная задача.

      Фактически, полученных данных (deviceId и package) достаточно для того, чтобы непосредственно приступить к выполнению adb uninstall. Но перед этим мы сделаем еще одну, по большей части косметическую, вещь. Различать устройства по deviceId не очень удобно, поэтому попробуем предоставить пользователю больше human-readable («удобочитаемой человеком»?) информации. Для этой цели, выполним для каждого устройства следующую команду:

      adb -s shell cat /system/build.prop; 

      Результатом которой будет длинный список (фактически это ассоциативный массив) различных характеристик устройства. Выбираем только нужные нам, а именно:

      ro.product.manufacturer ro.product.model ro.build.version.release ro.build.version.sdk 

      В итоге, вместо абстрактного заклинания R32CC02G02Z пользователь увидит гордое: «Samsung Nexus 10 Android 4.3 (API 18)».

      Дело за малым, показываем пользователю модальное окно со всем этим добром, получаем список выбранных устройств и, в порядке живой очереди, запускаем вожделенный adb uninstall:

      Process pr = Runtime.getRuntime().exec(toolPath + File.separator + "adb -s " + device.getSerialNumber() + " uninstall " + packageName); 
      Дополнение:
      • Для логов и различных сообщений, адресованных пользователю, используется Notifications.Bus.notify() . В зависимости от пользовательских настроек, сообщение появится в одном или сразу нескольких местах пользовательского интерфейса: Event Log, Balloon, Sticky Balloon, Tool window balloon. Либо не появится вообще.
      • Для взаимодействия с пользователем, чтобы ваши надстройки смотрелись органично, лучше все-таки использовать не голый Swing, a компоненты, которые предлагает IntelliJ IDEA. В частности, я использовал Dialog Wrapper из этого набора.
      • Важным нереализованным пунктом для меня остается сбор статистики, хотя бы по сбоям в работе плагина. На данный момент складывается какая-то курьезная ситуация, когда в ответ на крэш плагина IDEA предлагает отправить баг-репорт в Гугл. Буду благодарен за наводку, если кому-то известны интсрументы вроде Crashlytics, но только для Swing приложений.
      • android development
      • android studio
      • intellij idea
      • plugin

      пытаясь удалить модуль в Android Studio

      Я пытался удалить модуль из Android Studio, но не знаю, как удалить этот модуль даже после того, как я погуглил, шаги, которые я нашел, не смогли помочь мне удалить модуль. Вот модуль, который я добавил deviceprint-release-2.2.0 после добавления модуля я столкнулся с этой ошибкой enter image description here Пожалуйста, как мне избавиться от этого модуля, чтобы мой проект мог начать компилироваться нормально android android-studio

      Поделиться Источник 05 марта 2018 в 12:42

      3 ответа

      enter image description here

      Следуйте этому изображению, ваш setting.gradle должен выглядеть так :-

      Поделиться 05 марта 2018 в 12:46

      Если вы удалите содержимое модуля и он все еще появляется в представлении 1:Проект. Возможно, вам захочется просто синхронизировать свой проект. Просто измените build.gradle и снова синхронизируйте.

      Поделиться 08 декабря 2020 в 13:26

      • нажмите на ваш проект -> нажмите F4 (или щелкните правой кнопкой мыши на вашем проекте -> перейдите в раздел Настройки модуля)
      • выберите ваш модуль для удаления -> нажмите — красная кнопка в верхнем левом углу..
      • выберите ваш модуль приложения -> Зависимости -> Найдите ваш модуль, который вы удалили -> нажмите — красная кнопка в верхнем правом углу..
      • нажмите OK.

      Поделиться 05 марта 2018 в 12:45

Добавить комментарий

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