Android Studio - Error:Program type already presen

2019-01-12 05:18发布

When I try to compile the code, the following error appears on Android Studio 3.0.1

Error:Program type already present: com.squareup.picasso.Action$RequestWeakReference

My gradle code:

  ...
    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'

How do I fix my gradle script to fix the error?

10条回答
放荡不羁爱自由
2楼-- · 2019-01-12 05:53

Ok, maybe it's not your case but this is the message coming out of compilation also in the following scenario

I built an app. Then I modified the app gradle file in such a way to produce an aar file instead of an apk [i.e. apply plugin: 'com.android.library'] in order to move here some of the methods that had to be called by the original app

Then - in the original app - I commented the methods that I moved in the aar file and I added to the app project the aar file produced before

At this point I got the same error

The message Error:Program type already present helped me understanding that I had to rename the package name of the Android Studio project which was building the library because the two shared the same package name. So I renamed it, I built again the aar file and I added again this "new" file to the Android Studio project building the apk

Once done the issue disappeared

查看更多
▲ chillily
3楼-- · 2019-01-12 05:57

this happens when you have duplicate dependencies, list all your dependencies with ./gradlew app:dependencies

for example both dagger and robolectric depend on guava, but dagger's latest version uses guava 23+ while robolectric uses 20+, excluding guava from robolectric will solve the issue in this case.

查看更多
Evening l夕情丶
4楼-- · 2019-01-12 05:58

I came across this error in Android Studio 3.1.2 after I'd added Kotlin support to a Java project, and then removed all the Kotlin files (but left the gradle configuration in place). Removing the Kotlin configuration resolved this issue.

查看更多
beautiful°
5楼-- · 2019-01-12 05:59

There is a Library Version Mismatch. if you are using newer version of Android Studio, it will trap error.just Resolve the Version mismatch or Change Compile version and you will be up and running. See the dependencies defined here

查看更多
兄弟一词,经得起流年.
6楼-- · 2019-01-12 06:01

This can happen when there's a library version mismatch.

In my case when I updated Google Services dependencies from:

classpath 'com.google.gms:google-services:3.0.0'

to

classpath 'com.google.gms:google-services:3.2.1'

the error went away.

查看更多
对你真心纯属浪费
7楼-- · 2019-01-12 06:02

I just had the same problem so I will share the solution that worked for me. My error was:

Program type already present: org.json.CDL

and it started appearing after I added compile acra to my gradle file. So the solution was to add acra like this:

    compile('ch.acra:acra:4.5.0') {
    exclude group: 'org.json'
}   

So in OP's case the solution would be to find which one of his dependencies already compiles com.squareup.picasso and exclude like in the code above.

查看更多
登录 后发表回答