Я успешно настроил среду SDK для Android-P. Когда я пытаюсь использовать библиотеку поддержки дизайна Android, я сталкиваюсь с ошибками сборки проекта. Конфигурации проекта:
IDE: 3.2 Canary 17 Целевой API: 28 API компиляции: 28
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
android {
compileSdkVersion 28
defaultConfig {
applicationId "com.app.navigationpoc"
minSdkVersion 21
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'androidx.appcompat:appcompat:1.0.0-alpha3'
implementation 'androidx.constraintlayout:constraintlayout:1.1.1'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.1.0-alpha3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha3'
implementation 'com.android.support:design:28.0.0-alpha3'
implementation 'com.android.support:cardview-v7:28.0.0-alpha3'
}
И ошибка сборки:
Не удалось объединить манифест: атрибут application @ appComponentFactory value = (androidx.core.app.CoreComponentFactory) из [androidx.core: core: 1.0.0-alpha3] AndroidManifest.xml: 22: 18-86 также присутствует на [com.android .support: support-compat: 28.0.0-alpha3] AndroidManifest.xml: 22: 18-91 значение = (android.support.v4.app.CoreComponentFactory). Предложение: добавьте 'tools: replace = "android: appComponentFactory"' к элементу в AndroidManifest.xml: 6: 5-40: 19 для переопределения.
android
android-studio
android-design-library
android-9.0-pie
Рахул Растоги
источник
источник
Ответы:
Вы можете использовать либо предыдущую версию артефактов пакетов API, либо новую версию Androidx, но не то и другое одновременно.
Если вы хотите использовать предыдущую версию, замените свои зависимости на
если вы хотите использовать Androidx:
источник
com
не заменить вmaterial
вimplementation
?Важное обновление
Android не будет обновлять библиотеки поддержки после
28.0.0
.Так что используйте библиотеку AndroidX .
androidx
или любую другую библиотеку, потому что альфа, бета, rc могут содержать ошибки, которые вы не хотите отправлять вместе с вашим приложением.В твоем случае
источник
Добавь это:
в ваше приложение-манифест
Надеюсь, поможет
источник
@string/action_settings
?* What went wrong: Execution failed for task ':app:generateDebugBuildConfig'. > org.xml.sax.SAXParseException; systemId: file:/C:/D/code/js/emps_app/android/app/src/main/AndroidManifest.xml; lineNumber: 14; columnNumber: 52; The prefix "tools" for attribute "tools:replace" associated with an element type "application" is not bound.
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools">
Я использовал этот вариант:
https://developer.android.com/jetpack/androidx/migrate
источник
Google представил новые зависимости AndroidX . Вам нужно перейти на AndroidX, это просто.
Я заменил все зависимости на зависимости AndroidX
вы можете найти зависимости AndroidX здесь https://developer.android.com/jetpack/androidx/migrate
Опция автоматической миграции AndroidX (поддерживается в Android Studio 3.3+)
Перенесите существующий проект на использование AndroidX, выбрав Refactor> Migrate to AndroidX в строке меню.
источник
1. Добавьте эти коды в ваше приложение / build.gradle:
2.Изменена версия SDK и инструментов до 28:
2. В вашем файле AndroidManifest.xml вы должны добавить две строки:
Спасибо за ответ @Carlos Santiago: библиотека поддержки дизайна Android для API 28 (P) не работает
источник
Библиотека поддержки дизайна для androidX
implementation 'com.google.android.material:material:1.0.0'
источник
откройте файл gradle.properties и добавьте в него эти две строки:
чистить и строить
источник
Примечание. Вы не должны использовать зависимости com.android.support и com.google.android.material в своем приложении одновременно.
Добавьте компоненты материалов для Android в файл build.gradle (приложение)
Если ваше приложение в настоящее время зависит от исходной библиотеки поддержки дизайна, вы можете использовать опцию Refactor to AndroidX…, предоставляемую Android Studio. Это обновит зависимости и код вашего приложения, чтобы использовать недавно упакованные библиотеки androidx и com.google.android.material.
Если вы пока не хотите переходить на новые пакеты androidx и com.google.android.material, вы можете использовать компоненты материала через зависимость com.android.support:design:28.0.0-alpha3.
источник
Прежде всего, вы должны посмотреть gradle.properties, и эти значения должны быть верными . Если вы не можете их увидеть, вы должны написать.
После этого вы можете использовать зависимости AndroidX в своем build.gradle (Module: app) . Кроме того, вы должны проверить compileSDKVersion и targetVersion . Их должно быть минимум 28. Например, я использую 29.
Итак, пример зависимости androidx:
Итак, вам придется искать и внимательно читать. Счастливый код.
@canerkaseler
источник
Я преодолеваю эту ситуацию, заменив all
androidx.*
наappropiate package name
.измени свою линию
к
ПРИНЯТО К СВЕДЕНИЮ
tools:replace="android:appComponentFactory"
из AndroidManifestисточник
Код ниже отлично работал со мной:
источник
Попробуй это:
источник
Документация Android четко об этом. Перейдите на страницу ниже. Под ней есть два столбца с названиями «СТАРЫЙ ИСКУССТВО СБОРКИ » и «Артефакт сборки AndroidX».
https://developer.android.com/jetpack/androidx/migrate
Теперь у вас есть много зависимостей в gradle, просто сопоставьте те, которые имеют артефакты сборки Androidx, и замените их в gradle.
Этого будет недостаточно.
Перейдите в свою MainActivity (повторите это для всех действий) и удалите слово AppCompact Activity в заявлении «общедоступный класс MainActivity расширяет AppCompatActivity» и снова напишите то же слово. Но на этот раз будет импортирована библиотека androidx. До сих пор файл поддержки appcompact был импортирован и used (также удалите этот оператор импорта appcompact).
Также перейдите в свой файл макета. Предположим, у вас есть макет ограничения, тогда вы можете заметить, что макет ограничения первой строки в файле xml имеет что-то, связанное с appcompact, поэтому просто удалите его и снова напишите макет ограничения. Но теперь добавляется макет ограничения, связанный с androidx.
повторите это для такого количества действий и для такого количества файлов макета xml ..
Но не волнуйтесь: Android Studio отображает все такие возможные ошибки при компиляции.
источник
Была аналогичная проблема. Добавлен в build.gradle, и у меня это сработало.
источник
если вы хотите решить эту проблему без перехода на AndroidX (не рекомендую)
эта проблема слияния манифестов связана с одной из ваших зависимостей, использующих androidX.
вам необходимо уменьшить версию выпуска этой зависимости. для моего случая:
Я использовал Google или Firebase
Мне нужно уменьшить его до 15.0.1, чтобы использовать в библиотеке поддержки.
источник
Добавление
androidTestImplementation 'androidx.test:runner:1.2.0-alpha05'
работает у меня.источник