【问题标题】:Importing library project multiple times in Android Studio 1.3.1 causes library to disappear在 Android Studio 1.3.1 中多次导入库项目导致库消失
【发布时间】: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 并提供输出

标签: android android-studio gradle


【解决方案1】:

尝试单击项目结构的图标并检查有关结构的详细信息。有时可能只是您导入的库缺少一些重要步骤

【讨论】:

    【解决方案2】:

    在导入或删除任何库后cleanrebuild项目是好的,这样就不会有任何GC 在 Android Studio 中。

    【讨论】:

    • 我认为这个问题是在旧的 Android 工作室。通过使用最新版本 4.2.1,我们不会出现这些类型的错误。
    猜你喜欢
    • 1970-01-01
    • 2016-04-23
    • 2017-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-19
    • 1970-01-01
    • 2016-04-03
    相关资源
    最近更新 更多