Android Studio 1.0 и ошибка "Библиотечные проекты не могут установить applicationId"

После обновления Android Studio до 1.0 я вижу эту ошибку:

Ошибка: проекты библиотеки не могут установить applicationId. applicationId установлено to 'com.super.app' в конфигурации по умолчанию.

Я обновил плагин Gradle, как было предложено, но я не понял, как это исправить.

Ответ 1

Основываясь на этом info:

ApplicationId в проектах библиотеки

Вы не можете использовать applicationId для настройки пакета проекта библиотеки. Имя пакета должно быть исправлено в проектах библиотеки (и указано как packageName в манифесте). Плагин Gradle ранее не применял это ограничение.

Удаление переменной applicationId из файла библиотеки build.gradle должно решить проблему.

Ответ 2

Благодаря Джоэлю за его правильный ответ: Мне нужно удалить только 1 строку из файла te .gradle:

defaultConfig {
        applicationId "com.super.app"   <---- remove this line
        minSdkVersion 15
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
    }

становится

defaultConfig {
        minSdkVersion 15
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
    }

и мой AndroidManifest.xml

 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        package="com.super.app">
...

Это правильное решение, если вам не нужно переименовывать имя пакета вашего приложения. Чтобы переименовать его, вам нужно использовать "ароматы":

android {
   ...
   productFlavors {
       flavor1 {
           applicationId 'com.super.superapp'
       }
   }

Ответ 3

Просто он может помочь кому-то:

Когда я импортировал проект eclipse в студию android, у меня появилась ошибка::

"Ошибка: идентификатор приложения и тестового приложения не может быть одинаковым"

Странно, но я заглянул в build.gradle и нашел два заполнителя: один для приложения и другой для тестового приложения.

Я удалил testApplicationId из этого, как предлагается в этом сообщении, и это помогло мне решить проблему.

Примечание. Это объяснение не связано с ошибками, отправленными в этом вопросе, но может помочь кому-то, кто получает аналогичную ошибку.

Ответ 4

Я попытался удалить строку applicationId. Однако это вызывает другую ошибку:

FAILURE: сбой сборки с исключением.

  • Что пошло не так: Возникла проблема с настройкой проекта: app.

    Не удалось разрешить все зависимости для конфигурации: app: _debugApkCopy. Не удалось найти com.bst.material-dialogs: core: 0.9.0.2.  Требуется:      полярно-панель-мастер: приложение: не определено Не удалось найти com.bst: drag-select-recyclerview: 0.3.6.  Требуется:      полярно-панель-мастер: приложение: не определено Не удалось найти com.bst: bridge: 3.2.5.  Требуется:      полярно-панель-мастер: приложение: не определено Не удалось найти com.bst: sectioned-recyclerview: 0.2.3.  Требуется:      полярно-панель-мастер: приложение: не определено Не удалось найти com.bst: согласие: 0.2.5.  Требуется:      полярно-панель-мастер: приложение: не определено Не удалось найти com.bst: icon-request: 1.5.2.  Требуется:      полярно-панель-мастер: приложение: не определено Не удалось найти com.bst: запрос: 3.2.1.  Требуется:      полярно-панель-мастер: приложение: не определено

  • Try: Запустите с опцией --stacktrace, чтобы получить трассировку стека. Запустите с опцией -info или --debug, чтобы получить больше выходных данных журнала.

Ответ 5

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

Например: библиотека build.gradle

apply plugin: 'com.android.library'

def libraryGroupId = 'com.google.example'
def libraryArtifactId = project.getName()
def libraryVersion = '1.1'

Также вы можете использовать приведенное ниже значение по мере необходимости в самом файле сборки в lib.

android {
compileSdkVersion 28

defaultConfig {
    minSdkVersion 21
    targetSdkVersion 28
    versionCode 1
    versionName "$libraryVersion"
    resValue "string", "Library", libraryGroupId"
 }
}