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"
}
}