コードをコンパイルしようとすると、Android Studio 3.0.1に次のエラーが表示されます
Error:Program type already present: com.squareup.picasso.Action$RequestWeakReference
私のgradleコード:
...
compile 'com.Android.support:appcompat-v7:26.1.0'
compile 'com.Android.support:design:26.1.0'
compile 'com.Android.support:support-v4:26.1.0'
compile 'com.Android.support:support-vector-drawable:26.1.0'
compile 'com.Android.support.constraint:constraint-layout:1.1.0-beta4'
compile 'com.google.firebase:firebase-messaging:11.8.0'
compile 'com.google.firebase:firebase-ads:11.8.0'
compile 'com.google.gms:google-services:3.1.0'
compile 'com.google.Android.gms:play-services:11.8.0'
compile 'com.squareup.picasso:picasso:2.5.2'
testCompile 'junit:junit:4.12'
}
apply plugin: 'com.google.gms.google-services'
Gradleスクリプトを修正してエラーを修正するにはどうすればよいですか?
これをモジュールのbuild.gradleファイルに追加します
configurations.all {exclude group: 'com.Android.support', module: 'support-v13'}
私はちょうど同じ問題を抱えていたので、私のために働いた解決策を共有します。私のエラーは:
Program type already present: org.json.CDL
gradleファイルにコンパイルacraを追加した後に表示され始めました。そのため、解決策は次のようにacraを追加することでした。
compile('ch.acra:acra:4.5.0') {
exclude group: 'org.json'
}
そのため、OPの場合の解決策は、依存関係のどれが既にcom.squareup.picassoをコンパイルしているかを見つけ、上記のコードのように除外することです。
アプリの設定でコンパイルバージョンを確認します。プロジェクトをビルドしたAPIレベルと互換性のあるバージョンに変更しました。これで問題は解決しました。
Android Studioを3.1.2に、targetSdkVersion
を27にアップグレードした後、APKを作成する際に複数の問題に直面しました。これはそのうちの1つでした。
implementation 'me.leolin:ShortcutBadger:1.1.21@aar'
ビルドエラーProgram type already present: me.leolin.shortcutbadger.Badger
を引き起こすこの行
今のところ私はコメントアウトし、スムーズにコンパイルしました。
わかりました、多分それはあなたの場合ではありませんが、これは次のシナリオでもコンパイルから出てくるメッセージです
アプリを作成しました。次に、apkの代わりにaarファイルを生成するように、アプリのgradleファイルを変更しました[つまり、 apply plugin: 'com.Android.library'
]元のアプリによって呼び出されなければならなかったいくつかのメソッドをここに移動するために
次に-元のアプリで-私はaarファイルで移動したメソッドにコメントし、以前に作成したaarファイルをアプリプロジェクトに追加しました
この時点で同じエラーが発生しました
メッセージError:Program type already present
は、ライブラリを構築しているAndroid Studioプロジェクトのパッケージ名を変更する必要があることを理解するのに役立ちました。2つは同じパッケージ名を共有していました。そこで、名前を変更し、aarファイルを再度ビルドし、この「新しい」ファイルをapkをビルドするAndroid Studioプロジェクトに再度追加しました。
一度問題が消えました
ライブラリバージョンの不一致があります。 Android Studioの新しいバージョンを使用している場合は、error.justをトラップします。バージョンの不一致を解決するか、コンパイルバージョンを変更して、実行します。
以下に定義されている依存関係を参照してください
これは、ライブラリバージョンの不一致がある場合に発生する可能性があります。
私の場合、Googleサービスの依存関係を次から更新しました:
classpath 'com.google.gms:google-services:3.0.0'
に
classpath 'com.google.gms:google-services:3.2.1'
エラーはなくなりました。
AndroidプロジェクトにKotlinサポートを追加した後、Java Studio 3.1.2でこのエラーに遭遇し、すべてのKotlinファイルを削除しました(しかし、gradle構成はそのままにしておきました) )。 Kotlin構成を削除すると、この問題は解決しました。
これは、依存関係が重複している場合に発生し、すべての依存関係を./gradlew app:dependencies
でリストします
たとえば、短剣とロボエレクトリックの両方がグアバに依存していますが、ロボエレクトリックがロボエレクトリックからグアバを除外する場合、ロボエレクトリックは20+を使用し、ダガーの最新バージョンはグアバを使用します。
ライブラリのビルドバージョンと古いビルドファイルが更新されていない場合に発生します。または、他のライブラリがライブラリに依存しています。私の場合、com.google.gms:google-services
を更新します
解決策は、プロジェクトフォルダーを開いてbuild
フォルダーを削除し、キャッシュを再度開いてクリアすることです(ファイル> Invalidate Caches/Restart
)。
私にとって、このエラーは、build.gradleファイルに無効な行が含まれている場合に発生しました。
ライブラリとして.jarファイルを追加しましたが、ビルドに失敗しました。 build.gradleファイルを確認しましたが、どういうわけか2つの行が含まれていました。
implementation files('libs/bcprov.jar')
implementation files('bcprov.jar')
もちろん、.jarをlibsフォルダーに追加しただけなので、2行目は無効です。 2行目を削除すると、エラーが消えました。
これが誰かを助けることを願っています。