gpt4 book ai didi

android - 在 Android Studio 中出现 "Program type already present"错误

转载 作者:行者123 更新时间:2023-12-04 04:13:53 26 4
gpt4 key购买 nike

问题描述

大家好,

我正在开发一个具有我创建的 4(四个)其他模块(库模块)的 Android 应用程序,例如 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) 文件。现在我在我的“app”中创建了“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]尝试了“使缓存无效/重新启动”选项,但仍然出现相同的错误。

4] 然后我用谷歌搜索了这个“ 程序类型已经存在”错误并尝试了以下链接中所有可能的选项-

链接 1: What does "Program type already present" mean?

链接 2: Android Studio - Error:Program type already present

我注意到奇怪的事情 :

我创建了单独的演示应用程序并尝试使用其中的所有 4 个(.aar)库文件,令人惊讶的是,演示应用程序运行良好,没有任何错误。我能够将所有 4 个(.aar)库文件的功能实现到我的演示应用程序中,但不能在实际应用程序中实现。

我希望提供的信息足以理解我的问题,但如果您需要任何其他详细信息,请告诉我。谢谢!

最佳答案

经过2天的RND,我终于得到了答案。在我的应用程序级 build.gradle 文件中添加以下代码对我有用——

android {
dexOptions {
preDexLibraries = false
}
}

更多详情请查看 this post上“冰人”的回答。 .

关于android - 在 Android Studio 中出现 "Program type already present"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61137409/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com