これを追加しようとしています https://github.com/ArthurHub/Android-Image-Cropper しかし、追加するとこのエラーが発生します。「エラー:プログラムタイプは既に存在します:androidx.versionedparcelable。 ParcelImpl」
プロジェクトグラドルとアプリグラドルを添付しました。 (私はAndroid開発に不慣れであり、修正方法が完全にはわかりません。)
何か関係があると思う
implementation "com.Android.support:appcompat-v7:${supportLibVersion}"
implementation "com.Android.support:design:${supportLibVersion}"
しかし、これらはアクティビティのレイアウトの1つで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
}
アプリの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'
サポートライブラリを使用しますが、Image-Cropper
ライブラリの新しいバージョンはandroidx
ライブラリを使用しました。
チェック ログの変更
したがって、2つのオプションがあり、androidx
に移動するか、ライブラリのバージョンを古いバージョンに変更できます。
api 'com.theartofdev.edmodo:Android-image-cropper:2.7.0'
バターナイフの依存関係をバージョン8.8.1にダウングレードすることで問題を解決しました
// BUTTERKNIFE
implementation 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
または、別の解決策は、androidxを使用してインポートステートメントのプロジェクトファイル全体を検索し、Android.supportバージョンに置き換えることでした。
私の場合、私は見つけました-
import androidx.annotation.NonNull;
で置き換えたimport Android.support.annotation.NonNull;
最新バージョンを保持し、gradle
を使用してAndroidX
を構成できます。
api 'com.theartofdev.edmodo:Android-image-cropper:2.8.+'
gradle.properties:
Android.useAndroidX=true
Android.enableJetifier=true
Docから AndroidXを使用
既存のプロジェクトを移行する方法については、AndroidXへの移行をご覧ください。
新しいプロジェクトでAndroidXを使用する場合は、コンパイルSDKをAndroid 9.0(APIレベル28)以上に設定し、以下の両方を設定する必要がありますAndroid
gradle.properties
ファイル。
Android.useAndroidX
:trueに設定すると、Androidプラグインはサポートライブラリの代わりに適切なAndroidXライブラリを使用します。指定しない場合、フラグはデフォルトでfalseです。
Android.enableJetifier
:trueに設定すると、Androidプラグインは、バイナリを書き換えて既存のサードパーティライブラリを自動的に移行し、AndroidXを使用します。指定しない場合、フラグはデフォルトでfalseです。
使用する必要がありますapi 'com.theartofdev.edmodo:Android-image-cropper:2.7.0'
なぜならAndroid-image-cropper:2.8.+'
は、AndroidXへのライブラリをサポートするための更新です
Forcom.Android.supportこれを使用
api 'com.theartofdev.edmodo:Android-image-cropper:2.7.0'
ForAndroidXこれを使用
api 'com.theartofdev.edmodo:Android-image-cropper:2.8.+'
変更ログ2.8.0
Android Oでクラッシュを修正
AndroidXのライブラリをサポートするための更新
非画像ファイルを選択する際の失敗の処理
その他の翻訳
詳細については、 Change log
of Android Image Cropper