问题描述
大家好,
我正在开发一个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]尝试了“使缓存无效/重新启动”选项,但仍然出现相同的错误。
4]然后我搜索了这个“ 程序类型已经存在
”错误,并尝试了以下链接上的所有可能选项-链接-1:What does "Program type already present" mean?
链接2:Android Studio - Error:Program type already present
我注意到的奇怪事情
:我创建了单独的演示应用程序,并尝试使用其中的所有4(.aar)库文件,令人惊讶的是,该演示应用程序运行正常,没有任何错误。我能够将所有4(.aar)库文件的功能都实现到我的演示应用程序中,但不能在实际应用程序中实现。
我希望所提供的信息足以理解我的问题,但是如果您仍然需要其他详细信息,请告诉我。谢谢!
问题描述大家好,我正在使用一个Android应用程序,该应用程序具有我创建的4个(四个)其他模块(库模块),例如lib_module_1,lib_module_2,lib_module_3和core_api_lib_module。所以...
经过RND 2天后,终于得到了答案。在我的应用程序级别的build.gradle文件中添加以下代码对我有用-