我正在尝试添加此https://github.com/ArthurHub/Android-Image-Cropper,但是当我添加它时,出现此错误“错误:程序类型已存在:androidx.versionedparcelable.ParcelImpl”
我附上了项目gradle和应用gradle。 (我是android开发的新手,不确定要如何解决。)
我认为这可能与
有关implementation "com.android.support:appcompat-v7:${supportLibVersion}"
implementation "com.android.support:design:${supportLibVersion}"
但是这些在我的活动布局之一中用于TextInputLayout。 任何帮助将不胜感激。
// 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'
答案 0 :(得分:3)
您使用支持库,而新版本的Image-Cropper
库使用了androidx
库。
因此,您有两个选择,要么可以移至androidx
,要么将库版本更改为旧版本
api 'com.theartofdev.edmodo:android-image-cropper:2.7.0'
答案 1 :(得分:2)
我通过将Butterknife依赖项降级到版本8.8.1解决了我的问题
// BUTTERKNIFE
implementation 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
另外,另一种解决方案是我要通过整个项目文件检索利用androidx任何import语句,然后用android.support版本替换它们。
就我而言,我发现-
import androidx.annotation.NonNull;
,我替换为import android.support.annotation.NonNull;
答案 2 :(得分:1)
您可以保留最新版本,并将gradle
配置为使用AndroidX
api 'com.theartofdev.edmodo:android-image-cropper:2.8.+'
gradle.properties:
android.useAndroidX=true
android.enableJetifier=true
来自文档Using AndroidX
请参阅“迁移到AndroidX”以了解如何迁移现有项目。
如果要在新项目中使用AndroidX,则需要设置 将SDK编译为Android 9.0(API级别28)或更高版本,并同时设置 以下Android Gradle插件标志在您的
gradle.properties
文件。
android.useAndroidX
:设置为true时,Android插件使用 合适的AndroidX库,而不是支持库。标志是 如果未指定,默认情况下为false。
android.enableJetifier
:何时 设置为true,Android插件会自动迁移现有的 第三方库通过重写二进制文件来使用AndroidX。的 如果未指定,默认情况下该标志为false。
答案 3 :(得分:0)
您需要使用
api 'com.theartofdev.edmodo:android-image-cropper:2.7.0'
因为 android-image-cropper:2.8.+'
是更新版本,以支持 AndroidX
对于 com.android.support ,请使用此
api 'com.theartofdev.edmodo:android-image-cropper:2.7.0'
对于 AndroidX ,使用此
api 'com.theartofdev.edmodo:android-image-cropper:2.8.+'
更改日志2.8.0
修复了Android O上的崩溃
更新以支持AndroidX的库
选择非图像文件时处理失败
更多翻译
有关更多信息,请阅读Android Image Cropper的Change log
答案 4 :(得分:0)
如果添加了模型裁切器,请将其删除 并添加
对于com.android.support使用此
api 'com.theartofdev.edmodo:android-image-cropper:2.7.0'
对于AndroidX,请使用此
api 'com.theartofdev.edmodo:android-image-cropper:2.8.+'