在 Android Studio 1.3.1 中多次导入库项目导致库消失
Posted
技术标签:
【中文标题】在 Android Studio 1.3.1 中多次导入库项目导致库消失【英文标题】:Importing library project multiple times in Android Studio 1.3.1 causes library to disappear 【发布时间】:2015-11-05 01:19:57 【问题描述】:我有一个名为 Common 的库项目,我将其用于由我的其他项目 Consumer 和 Management 共享的功能。 Consumer 本身也是一个库项目,供其他应用程序使用。
Common 中的 build.gradle 文件包含其他项目使用的所有外部依赖项,如下所示:
dependencies
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.code.gson:gson:2.2.2'
compile 'com.android.support:support-v4:22.1.0'
compile 'com.squareup.picasso:picasso:2.5.2'
这会下载以下库:
当我将 Common 添加到 Consumer、Management 或两者中时,此列表保持不变。当我像这样将消费者添加到 MyApp 时:
dependencies
compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(':consumer')
发生这种情况:
支持库消失了,对我的项目造成了彻底的破坏。这在更新到 Android Studio 1.3.1 之前没有发生,所以我真的想知道问题可能是什么。
这些是完整的 gradle.build 文件供参考:
常见
apply plugin: 'com.android.library'
android
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig
minSdkVersion 11
targetSdkVersion 22
versionCode 1
versionName "1.0"
buildTypes
release
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
dependencies
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.code.gson:gson:2.2.2'
compile 'com.android.support:support-v4:22.1.0'
compile 'com.squareup.picasso:picasso:2.5.2'
管理
apply plugin: 'com.android.application'
android
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig
applicationId "eu.test.mgmt"
minSdkVersion 11
targetSdkVersion 22
multiDexEnabled = true
packagingOptions
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/ASL2.0'
buildTypes
release
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
dependencies
compile project(':common')
消费者
apply plugin: 'com.android.library'
android
compileSdkVersion 22
buildToolsVersion "22.0.1"
lintOptions
checkReleaseBuilds false
abortOnError false
defaultConfig
minSdkVersion 15
targetSdkVersion 22
versionCode 18
versionName "1.3"
multiDexEnabled = true
buildTypes
release
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
sourceSets main res.srcDirs = ['src/main/res', 'src/main/xml', 'src/main/res/xml']
repositories
mavenCentral()
dependencies
compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(':common')
我的应用:
apply plugin: 'com.android.application'
android
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig
applicationId "eu.test.myapp"
minSdkVersion 15
targetSdkVersion 22
versionCode 19
versionName "1.4"
multiDexEnabled = true
packagingOptions
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/ASL2.0'
buildTypes
release
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
dependencies
compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(':consumer')
【问题讨论】:
我能看到的唯一奇怪的事情是您在消费者build.gradle
中指定了存储库。也许尝试删除该块,因为它似乎没有必要,尽管我也不确定这会导致您的问题。
两个问题!!您是否尝试添加 :common 作为直接依赖项?那么appCompat库也没有显示?并添加 :management 作为依赖项也会导致同样的问题?
是否仅在 IDE 中丢失?尝试./gradlew your_app:dependencies
并提供输出
【参考方案1】:
尝试单击项目结构的图标并检查有关结构的详细信息。有时可能只是您导入的库缺少一些重要步骤
【讨论】:
【参考方案2】:在导入或删除任何库后clean和rebuild项目是好的,这样就不会有任何GC 在 Android Studio 中。
【讨论】:
我认为这个问题是在旧的 Android 工作室。通过使用最新版本 4.2.1,我们不会出现这些类型的错误。以上是关于在 Android Studio 1.3.1 中多次导入库项目导致库消失的主要内容,如果未能解决你的问题,请参考以下文章