使用android库模块

时间:2017-01-21 19:49:04

标签: android android-gradle

我在现有项目中创建了两个不同的Android库模块。

现在,当我尝试运行应用程序时,它给出了一个错误,指出项目中不存在所述程序包。这真让我感到困惑,因为两个模块都在那里,之前只有一个库模块,它正在工作。

此外,它在gradle构建时不会产生任何错误。

这是 app的gradle 文件:

    apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"

    defaultConfig {
        applicationId "com.cl.lo"
        minSdkVersion 17
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.4.0'
    compile project(":ge")
    compile project(":in")
    compile 'com.mcxiaoke.volley:library-aar:1.0.0'

}

这是在gradle 文件中。

apply plugin: 'com.android.library'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"

    defaultConfig {
        minSdkVersion 17
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.4.0'
    compile 'com.google.android.gms:play-services-maps:9.4.0'
    compile 'com.google.android.gms:play-services-location:9.4.0'
    compile 'com.mcxiaoke.volley:library-aar:1.0.0'
}

最后这个是 ge gradle 文件:

apply plugin: 'com.android.library'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"

    defaultConfig {
        minSdkVersion 17
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.4.0'
    compile 'com.mcxiaoke.volley:library-aar:1.0.0'
    compile 'com.google.android.gms:play-services-maps:9.4.0'
}

1 个答案:

答案 0 :(得分:4)

<强>更新
在ge build.gradle中删除此行。

minifyEnabled true

Minify删除了库中未使用的代码,因此app无法找到它们。

注意:ProGuard设置应放在app build.gradle中,而不是放在库中。

旧答案

如果是与Google服务相关的问题,
在应用的build.gradle底部添加此行。

apply plugin: 'com.google.gms.google-services'

The Google Services Gradle Plugin

  

简介
  2为已启用的服务所需的基本库添加依赖项。此步骤需要apply plugin:&#39; com.google.gms.google-services&#39; line位于app / build.gradle文件的底部,因此不会引入依赖项冲突。您可以通过运行./gradlew:app:dependencies。

来查看此步骤的结果