Описание проблемы
Привет всем,
Я работаю над одним Android приложением, имеющим 4 (четыре) других модуля (библиотечных модуля), созданных мной, например lib_module_1 , lib_module_2 , lib_module_3 и core_api_lib_module . До сих пор я использовал этот библиотечный модуль в своем приложении, используя зависимость проекта, как показано ниже -
implementation project(":lib_module_1")
implementation project(":lib_module_2")
implementation project(":lib_module_3")
implementation project(":core_api_lib_module")
, в этом случае мое приложение работает нормально, но теперь у меня есть одно требование использовать эквивалент (.aar) файлы для тех же модулей вместо этих реальных библиотечных модулей для целей управления кодом. Итак, я отделил эти библиотечные модули от кода своего приложения и сумел создать эквивалентные (.aar) файлы для соответствующих библиотечных модулей. Теперь я создал каталог «libs» в своем «приложении» и скопировал в него все файлы (.aar). Затем я написал ниже код зависимости в файле build.gradle уровня приложения -
implementation(name: 'lib_module_1', ext: 'aar')
implementation(name: 'lib_module_2', ext: 'aar')
implementation(name: 'lib_module_3', ext: 'aar')
implementation(name: 'core_api_lib_module', ext: 'aar')
Также написан ниже код в файле build.gradle уровня проекта -
allprojects {
repositories {
jcenter()
google()
flatDir {
dirs 'libs'
}
}
}
Затем я Синхронизировал проект успешно, но теперь, когда я пытаюсь запустить проект, я получаю ошибку ниже времени выполнения для любого случайного класса, записанного в "core_api_lib_module" -
Program type already present: com.core.api.BuildConfig
Иногда я получаю ту же ошибку для любого другого класса, написанного в той же библиотеке "core_api_lib_module". Для получения более подробной информации, пожалуйста, найдите мой полный код файла "app / build.gradle", как показано ниже -
buildscript {
repositories {
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath 'io.fabric.tools:gradle:1.+'
}
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
android {
compileSdkVersion 29
buildToolsVersion '29.0.2'
defaultConfig {
applicationId "come.xyz.my_package"
minSdkVersion 19
targetSdkVersion 29
versionCode 87
versionName "87.0"
multiDexEnabled true;
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
packagingOptions {
exclude 'META-INF/license.txt'
exclude 'META-INF/notice.txt'
pickFirst 'lib/x86_64/libhsscl.so'
pickFirst 'lib/armeabi/libhsscl.so'
pickFirst 'lib/x86/libhsscl.so'
pickFirst 'lib/armeabi-v7a/libhsscl.so'
pickFirst 'lib/arm64-v8a/libhsscl.so'
pickFirst 'lib/mips/libhsscl.so'
pickFirst 'lib/mips64/libhsscl.so'
}
lintOptions {
disable 'MissingTranslation'
}
sourceSets {
main {
assets.srcDirs = ['src/main/assets', 'src/main/assets/']
res.srcDirs = ['src/main/res', 'src/main/res/drawable']
}
}
}
dependencies {
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'com.google.android.gms:play-services-maps:11.0.2'
implementation 'com.google.android.gms:play-services-analytics:17.0.0'
implementation 'com.google.android.gms:play-services-wallet:18.0.0'
implementation fileTree(dir: 'libs', include: ['*.aar'])
testImplementation('androidx.test.espresso:espresso-core:3.1.0', {
exclude group: 'com.android.support', module: 'support-annotations'
exclude module: 'support-v4' exclude module: 'support-v13' exclude module: 'recyclerview-v7'
})
implementation 'androidx.appcompat:appcompat:1.0.0'
testImplementation 'junit:junit:4.12'
implementation 'com.amplitude:android-sdk:2.16.0'
implementation 'com.google.zxing:core:3.2.1'
implementation 'com.journeyapps:zxing-android-embedded:3.2.0@aar'
implementation 'com.google.android.material:material:1.0.0'
implementation project(":liblknscratcherview")
implementation 'org.springframework.android:spring-android-core:1.0.1.RELEASE'
implementation 'org.springframework.android:spring-android-rest-template:1.0.1.RELEASE'
implementation 'commons-io:commons-io:2.4'
implementation 'com.google.code.gson:gson:+'
implementation 'org.apache.httpcomponents:httpcore:4.4.6'
implementation 'com.google.android.gms:play-services-location:17.0.0'
implementation 'com.squareup.picasso:picasso:2.5.2'
implementation 'com.squareup.retrofit:retrofit:1.9.0'
implementation 'com.daimajia.swipelayout:library:1.2.0@aar'
implementation 'com.kontaktio:sdk:3.3.3'
implementation 'io.gresse.hugo.vumeterlibrary:vumeterlibrary:1.0.15'
implementation 'androidx.recyclerview:recyclerview:1.0.0'
implementation 'com.mindorks:placeholderview:0.2.7'
implementation 'androidx.cardview:cardview:1.0.0'
implementation 'com.facebook.shimmer:shimmer:0.1.0@aar'
implementation 'com.sothree.slidinguppanel:library:3.3.1'
implementation 'org.twitter4j:twitter4j-core:4.0.3'
implementation 'org.twitter4j:twitter4j-async:4.0.3'
implementation 'androidx.multidex:multidex:2.0.0'
implementation 'com.facebook.android:facebook-login:[4,5)'
implementation 'com.facebook.android:facebook-share:[4,5)'
implementation 'com.facebook.android:facebook-android-sdk:[4,5)'
implementation 'bz.tsung.android:objectify:2.0'
implementation 'com.xiaofeng.android:flowlayoutmanager:1.2.3.2'
implementation 'de.hdodenhof:circleimageview:3.0.0'
implementation(name: 'lib_module_1', ext: 'aar')
implementation(name: 'lib_module_2', ext: 'aar')
implementation(name: 'lib_module_3', ext: 'aar')
implementation(name: 'core_api_lib_module', ext: 'aar')
implementation project(":library")
implementation('com.crashlytics.sdk.android:crashlytics:2.9.1@aar') {
transitive = true;
}
implementation('com.crashlytics.sdk.android:crashlytics-ndk:2.0.2@aar') {
transitive = true;
}
}
crashlytics {
enableNdk true
androidNdkOut 'src/main/obj'
androidNdkLibsOut 'src/main/libs'
}
Что я пробовал до сих пор
1] Пробовал удаляя папку «.gradle» из иерархии проекта, затем очищайте, перестраивайте и запускайте проект, но получая ту же ошибку.
2] Попытка удаления всего кэша из «C: \ Users \% USERNAME% .gradle \ caches \ "каталог, но получаю ту же ошибку.
3] Пробовал опцию" Invalidate Caches / Restart ", но все равно получаю ту же ошибку.
4] Затем я гуглил это" Тип программы уже присутствует"ошибка и испробованы все возможные варианты, доступные по ссылкам ниже -
link-1: Что означает" Тип программы уже присутствует "?
link- 2: Android Studio - Ошибка: тип программы уже присутствует
Странная вещь, которую я заметил :
Я создал отдельное демонстрационное приложение и попытался использовать все 4 (.aar) библиотечных файла в нем, и удивительно, что демонстрационное приложение работает без ошибок. Я могу реализовать функциональность из всех 4 (.aar) библиотечных файлов в моем демонстрационном приложении, но не в реальном приложении.
Я надеюсь, что предоставленной информации достаточно, чтобы понять мою проблему, но все же на тот случай, если вы нужны какие-то другие детали, пожалуйста, дайте мне знать. Спасибо!