J'ai configuré avec succès l'environnement du SDK android-P. Lorsque j'essaie d'utiliser la bibliothèque de support de conception Android, je suis confronté à des erreurs de construction de projet. Les configurations de projet sont:
IDE: 3.2 API cible Canary 17: 28 API de compilation: 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'
}
Et l'erreur d'échec de la construction est:
La fusion du manifeste a échoué: l'attribut application @ appComponentFactory value = (androidx.core.app.CoreComponentFactory) de [androidx.core: core: 1.0.0-alpha3] AndroidManifest.xml: 22: 18-86 est également présent sur [com.android .support: support-compat: 28.0.0-alpha3] AndroidManifest.xml: 22: 18-91 value = (android.support.v4.app.CoreComponentFactory). Suggestion: ajoutez 'tools: replace = "android: appComponentFactory"' à l'élément d'AndroidManifest.xml: 6: 5-40: 19 pour remplacer.
la source
Réponses:
Vous pouvez utiliser la version précédente des packages d'API des artefacts ou le nouvel Androidx, jamais les deux.
Si vous souhaitez utiliser la version précédente, remplacez vos dépendances par
si vous souhaitez utiliser Androidx:
la source
com
pas été remplacématerial
dans leimplementation
?Mise à jour importante
Android ne mettra pas à jour les bibliothèques de support après
28.0.0
.Utilisez donc la bibliothèque AndroidX .
androidx
ou n'importe quelle bibliothèque, car alpha, beta, rc peuvent avoir des bogues que vous ne voulez pas livrer avec votre application.Dans ton cas
la source
Ajoute ça:
à votre application manifeste
J'espère que ça aide
la source
@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">
J'ai utilisé cette option:
https://developer.android.com/jetpack/androidx/migrate
la source
Google a introduit de nouvelles dépendances AndroidX . Vous devez migrer vers AndroidX, c'est simple.
J'ai remplacé toutes les dépendances par des dépendances AndroidX
vous pouvez trouver les dépendances AndroidX ici https://developer.android.com/jetpack/androidx/migrate
Option de migration automatique AndroidX (prise en charge sur Android Studio 3.3+)
Migrez un projet existant pour utiliser AndroidX en sélectionnant Refactor> Migrer vers AndroidX dans la barre de menus.
la source
1.Ajout de ces codes à votre application / build.gradle:
2. version SDK et outils modifiée à 28:
Dans votre fichier AndroidManifest.xml, vous devez ajouter deux lignes:
Merci pour la réponse @Carlos Santiago: la bibliothèque de support de conception Android pour l'API 28 (P) ne fonctionne pas
la source
La bibliothèque de support de conception pour androidX est
implementation 'com.google.android.material:material:1.0.0'
la source
ouvrez le fichier gradle.properties et ajoutez-y ces deux lignes:
nettoyer et construire
la source
Remarque: vous ne devez pas utiliser les dépendances com.android.support et com.google.android.material dans votre application en même temps.
Ajoutez des composants matériels pour Android dans votre fichier build.gradle (app)
Si votre application dépend actuellement de la bibliothèque de support de conception d'origine, vous pouvez utiliser l'option Refactor to AndroidX… fournie par Android Studio. Cela mettra à jour les dépendances et le code de votre application pour utiliser les bibliothèques androidx et com.google.android.material nouvellement intégrées.
Si vous ne souhaitez pas encore basculer vers les nouveaux packages androidx et com.google.android.material, vous pouvez utiliser les composants matériels via la dépendance com.android.support:design:28.0.0-alpha3.
la source
Tout d'abord, vous devriez regarder gradle.properties et ces valeurs doivent être vraies . Si vous ne pouvez pas les voir, vous devez écrire.
Après cela, vous pouvez utiliser les dépendances AndroidX dans votre build.gradle (Module: app) . En outre, vous devez vérifier compileSDKVersion et targetVersion . Ils doivent être au minimum de 28. Par exemple, j'utilise 29.
Donc, un exemple de dépendance androidx:
Donc, vous devez rechercher et lire attentivement. Bon code.
@canerkaseler
la source
Je traverse cette situation en remplaçant tout
androidx.*
parappropiate package name
.change ta ligne
à
C'EST NOTÉ
tools:replace="android:appComponentFactory"
d'AndroidManifestla source
Le code ci-dessous a parfaitement fonctionné avec moi:
la source
Essaye ça:
la source
La documentation Android est claire à ce sujet.Allez à la page ci-dessous.En dessous, il y a deux colonnes avec les noms "OLD BUILD ARTIFACT" et "AndroidX build artifact"
https://developer.android.com/jetpack/androidx/migrate
Maintenant, vous avez de nombreuses dépendances dans gradle, il suffit de faire correspondre celles avec les artefacts de construction Androidx et de les remplacer dans le gradle.
Cela ne suffira pas.
Accédez à votre MainActivity (répétez ceci pour toutes les activités) et supprimez le mot AppCompact Activity dans l'instruction "public class MainActivity extends AppCompatActivity" et écrivez à nouveau le même mot.Mais cette fois, la bibliothèque androidx est importée.Jusqu'à ce que le fichier de support appcompact soit importé et used (également, supprimez cette instruction d'importation appcompact).
Accédez également à votre fichier de mise en page. Supposons que vous ayez une disposition de contrainte, alors vous pouvez remarquer que la disposition de contrainte de première ligne dans le fichier xml a quelque chose lié à appcompact.
répétez ceci pour autant d'activités et autant de fichiers de mise en page xml.
Mais ne vous inquiétez pas: Android Studio affiche toutes ces erreurs possibles lors de la compilation.
la source
Avait un problème similaire. Ajouté dans build.gradle et cela a fonctionné pour moi.
la source
si vous souhaitez résoudre ce problème sans migrer vers AndroidX (je ne le recommande pas)
ce problème de fusion manifeste est lié à l'une de vos dépendances utilisant androidX.
vous devez diminuer la version finale de cette dépendance. pour mon cas:
J'utilisais google ou firebase
Je dois le diminuer 15.0.1 pour l'utiliser dans la bibliothèque de support.
la source
L'ajout
androidTestImplementation 'androidx.test:runner:1.2.0-alpha05'
fonctionne pour moi.la source