Android Studio - Error:Program type already present

对着背影说爱祢 提交于 2019-11-26 16:59:59

问题


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?


回答1:


Add this to your module build.gradle file

  configurations.all {exclude group: 'com.android.support', module: 'support-v13'}



回答2:


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.




回答3:


Check the compile version in your App settings. I changed it to the version compatible with the API level I've built my project with. This fixed the problem for me.




回答4:


I faced nightmare of multiple troubles building APK after I upgraded Android Studio to 3.1.2 and targetSdkVersion to 27. This was one of them.

implementation 'me.leolin:ShortcutBadger:1.1.21@aar' 

This line causing build error Program type already present: me.leolin.shortcutbadger.Badger

For now I just commented it out and it compiled smoothly.




回答5:


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




回答6:


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.




回答7:


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.




回答8:


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 below




回答9:


For me, this error appeared when my build.gradle file contained an invalid line.

I added a .jar file as library, and the Build failed. I checked the build.gradle file, and somehow it contained two lines:

implementation files('libs/bcprov.jar')
implementation files('bcprov.jar')

Of course, I only added the .jar to the libs folder, so the second line is invalid. After I deleted the second line, the error disappeared.

Hope this will help someone.




回答10:


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.




回答11:


It's happened when you update a library build version and old build file not clear. Or other libraries are depended with the library. In my case I update com.google.gms:google-services

The solution is to open your project folder and delete build folder and reopen and clear cache, File > Invalidate Caches/Restart.



来源:https://stackoverflow.com/questions/48351721/android-studio-errorprogram-type-already-present

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!