Ответ 1
Добавьте это в свой модуль build.gradle file
configurations.all {exclude group: 'com.android.support', module: 'support-v13'}
Когда я пытаюсь скомпилировать код, на 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 script, чтобы исправить ошибку?
Добавьте это в свой модуль build.gradle file
configurations.all {exclude group: 'com.android.support', module: 'support-v13'}
У меня просто была такая же проблема, поэтому я поделюсь решением, которое сработало для меня. Моя ошибка была:
Program type already present: org.json.CDL
и он начал появляться после того, как я добавил compra acra в мой файл gradle. Таким образом, решение было добавить acra следующим образом:
compile('ch.acra:acra:4.5.0') {
exclude group: 'org.json'
}
Так что в случае OP решение было бы найти, какая из его зависимостей уже компилирует com.squareup.picasso и исключить, как в коде выше.
Проверьте версию компиляции в настройках вашего приложения. Я изменил его на версию, совместимую с уровнем API, с которым я построил свой проект. Это устранило проблему для меня.
Я столкнулся с кошмаром множества проблем при создании APK после того, как обновил Android Studio до 3.1.2 и targetSdkVersion
до 27. Это был один из них.
implementation 'me.leolin:ShortcutBadger:[email protected]'
Эта строка вызывает ошибку сборки. Program type already present: me.leolin.shortcutbadger.Badger
Сейчас я просто прокомментировал это, и он скомпилирован гладко.
Существует несоответствие версии библиотеки. Если вы используете более новую версию Android Studio, она будет перехватывать сообщение об ошибке. Просто устраните несоответствие версий или измените версию компиляции, и все будет в порядке.
Смотрите зависимости, определенные ниже
Хорошо, возможно, это не ваше дело, но это сообщение выходит из компиляции также в следующем сценарии
Я создал приложение. Затем я модифицировал файл приложения gradle таким образом, чтобы создать файл aar вместо apk [i.e. apply plugin: 'com.android.library'
], чтобы переместить здесь некоторые из методов, которые должны были быть вызваны исходным приложением
Затем - в исходном приложении - я прокомментировал методы, которые я переместил в файл aar, и добавил в проект приложения файл aar, созданный до
В этот момент я получил ту же ошибку
Сообщение Error:Program type already present
помогло мне понять, что мне пришлось переименовать имя пакета проекта Android Studio, который создавал библиотеку, потому что у них было одинаковое имя пакета. Поэтому я переименовал его, я снова построил файл aar и снова добавил этот "новый" файл в проект Android Studio, создав apk
Как только проблема исчезла
Это может произойти, если несоответствие версии библиотеки.
В моем случае, когда я обновил зависимости Google Services от:
classpath 'com.google.gms:google-services:3.0.0'
к
classpath 'com.google.gms:google-services:3.2.1'
ошибка исчезла.
Я столкнулся с этой ошибкой в Android Studio 3.1.2 после того, как добавил Kotlin поддержку проекта Java, а затем удалил все файлы Kotlin (но оставил конфигурацию gradle на месте). Удаление конфигурации Kotlin разрешило эту проблему.
Для меня эта ошибка появилась, когда мой файл build.gradle содержал недопустимую строку.
Я добавил файл .jar в качестве библиотеки, и сборка не удалась. Я проверил файл build.gradle, и он как-то содержал две строки:
implementation files('libs/bcprov.jar')
implementation files('bcprov.jar')
Конечно, я только добавил .jar в папку libs, поэтому вторая строка недействительна. После того как я удалил вторую строку, ошибка исчезла.
Надеюсь, это кому-нибудь поможет.
это происходит, когда у вас есть дубликаты зависимостей, перечислите все ваши зависимости с ./gradlew app:dependencies
например, и кинжал, и робоэлектрик зависят от гуавы, но последняя версия кинжала использует гуаву 23+, в то время как робоэлектрик использует 20+, но исключение гуавы из робоэлектрика решит проблему в этом случае.
Это произошло, когда вы обновили версию сборки библиотеки и старый файл сборки не был ясен. Или другие библиотеки зависят от библиотеки. В моем случае я обновляю com.google.gms:google-services
Решение состоит в том, чтобы открыть папку вашего проекта и удалить папку build
а затем снова открыть и очистить кэш, Файл> Invalidate Caches/Restart
.