J'essaie d'ajouter ceci https://github.com/ArthurHub/Android-Image-Cropper Mais quand je l'ajoute, j'obtiens cette erreur "Erreur: Type de programme déjà présent: androidx.verseasedparcelable.ParcelImpl"
J'ai joint projet gradle et app gradle. (Je suis nouveau dans le développement Android et je ne sais pas trop comment le réparer.)
je pense que cela pourrait avoir quelque chose à voir avec
implementation "com.Android.support:appcompat-v7:${supportLibVersion}"
implementation "com.Android.support:design:${supportLibVersion}"
Mais ceux-ci sont utilisés pour TextInputLayout dans l'une de mes mises en page pour une activité. Toute aide est la bienvenue.
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.Android.tools.build:gradle:3.2.1'
classpath 'com.google.gms:google-services:4.0.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
maven{
url "https://maven.google.com"
}
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
App Gradle:
apply plugin: 'com.Android.application'
Android {
compileSdkVersion 28
defaultConfig {
applicationId "com.something.app"
minSdkVersion 24
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'
}
}
}
ext {
supportLibVersion = '27.1.1' // variable that can be referenced to keep support libs consistent
}
dependencies {
api 'com.theartofdev.edmodo:Android-image-cropper:2.8.+'
implementation "com.Android.support:appcompat-v7:${supportLibVersion}"
implementation "com.Android.support:design:${supportLibVersion}"
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.Android.support:appcompat-v7:28.0.0-rc01'
implementation 'com.Android.support:design:28.0.0-rc01'
implementation 'com.Android.support.constraint:constraint-layout:1.1.3'
implementation 'com.google.firebase:firebase-core:16.0.4'
implementation 'com.google.firebase:firebase-auth:16.0.4'
implementation 'com.google.firebase:firebase-database:16.0.3'
implementation 'com.google.firebase:firebase-storage:16.0.3'
testImplementation 'junit:junit:4.12'
implementation 'de.hdodenhof:circleimageview:2.2.0'
implementation 'com.squareup.picasso:picasso:2.71828'
implementation 'com.Android.support:support-v4:28.0.0'
androidTestImplementation 'com.Android.support.test:runner:1.0.2'
androidTestImplementation 'com.Android.support.test.espresso:espresso-core:3.0.2'
implementation 'com.Android.support:design:28.0.0-rc01'
//implementation 'com.google.Android.gms:play-services-maps:16.0.0'
// implementation 'com.google.Android.gms:play-services-analytics:7.3.0'
implementation 'com.google.Android.gms:play-services-maps:16.0.0'
implementation 'com.google.Android.gms:play-services-location:16.0.0'
implementation 'com.google.Android.gms:play-services-analytics:16.0.4'
implementation 'com.google.Android.gms:play-services-places:16.0.0'
}
apply plugin: 'com.google.gms.google-services'
Vous utilisez la bibliothèque de support alors que la nouvelle version de Image-Cropper
Library utilisait la bibliothèque androidx
.
vérifier changer le journal
Donc, vous avez deux options soit vous pouvez déplacer à androidx
ou changer la version de la bibliothèque en ancienne version
api 'com.theartofdev.edmodo:Android-image-cropper:2.7.0'
Vous pouvez conserver la dernière version et configurer gradle
pour utiliser AndroidX
api 'com.theartofdev.edmodo:Android-image-cropper:2.8.+'
gradle.properties:
Android.useAndroidX=true
Android.enableJetifier=true
De Doc Utilisation d'AndroidX
Voir Migration vers AndroidX pour savoir comment migrer un projet existant.
Si vous souhaitez utiliser AndroidX dans un nouveau projet, vous devez définir le paramètre compilez le SDK sous Android 9.0 (API niveau 28) ou supérieur et définissez les deux. les drapeaux du plug-in Android Gradle suivants à true dans votre
gradle.properties
fichier.
Android.useAndroidX
: lorsqu'il est défini sur true, le plug-in Android utilise le fichier bibliothèque AndroidX appropriée au lieu d’une bibliothèque de support. Le drapeau est false par défaut si ce n'est pas spécifié.
Android.enableJetifier
: quand défini sur true, le plug-in Android migre automatiquement les fichiers existants bibliothèques tierces à utiliser AndroidX en réécrivant leurs fichiers binaires. Le flag est false par défaut s'il n'est pas spécifié.
J'ai résolu mon problème en rétrogradant les dépendances de butterknife vers la version 8.8.1.
// BUTTERKNIFE
implementation 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
Une autre solution consistait à rechercher des instructions d'importation sous androidx dans des fichiers de projet complets pour les remplacer par la version Android.support.
Dans mon cas j'ai trouvé -
import androidx.annotation.NonNull;
que j'ai remplacé par import Android.support.annotation.NonNull;
Vous devez utiliser api 'com.theartofdev.edmodo:Android-image-cropper:2.7.0'
Parce que Android-image-cropper:2.8.+'
est une mise à jour pour prendre en charge la bibliothèque sur AndroidX
Pour com.Android.support Utilisez ceci
api 'com.theartofdev.edmodo:Android-image-cropper:2.7.0'
Pour AndroidX Utilisez ceci
api 'com.theartofdev.edmodo:Android-image-cropper:2.8.+'
Change log 2.8.0
Correction d'un crash sur Android O
Mise à jour pour prendre en charge la bibliothèque sur AndroidX
Gestion des échecs lors de la sélection d'un fichier non-image
Plus de traductions
Pour plus d'informations, consultez le Change log
d'Android Image Cropper