Android Studio 依赖moudle里面的跟app的APPLICATION_ID不一样, 怎么才能保持一致?

现在app依赖lib, 发现app里面的BuildConfig.APPLICATION_ID跟lib里面的BuildConfig.APPLICATION_ID是不一样的,我想要lib里面的BuildConfig.APPLICATION_ID跟随着app里面的BuildConfig.APPLICATION_ID变化,如何实现?

阅读 9.2k
4 个回答

在项目根目录的build.gradle文件中加入以下代码:

ext{
    applicationId = 'com.xx.xx'
    compileSdkVersion = 25
    buildToolsVersion = '25.0.3'

    targetSdkVersion = 23
    minSdkVersion = 18
    versionCode = 1
    versionName = "1.0"

    supportVersion = "25.3.1"
    junitVersion = "4.12"

}

然后再同步你的模块 在相应位置配置applicationId

android {
    compileSdkVersion rootProject.ext.compileSdkVersion
    buildToolsVersion rootProject.ext.buildToolsVersion
    defaultConfig {
        applicationId rootProject.ext.applicationId 
        minSdkVersion rootProject.ext.minSdkVersion
        targetSdkVersion rootProject.ext.targetSdkVersion
        versionCode rootProject.ext.versionCode
        versionName rootProject.ext.versionName
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    .....

其实我比较好奇的是:lib 为何有 applicationId?

不用管,applicationId只有在APP module有效,lib是不能在gradle里设置applicationId的,BuildConfig.APPLICATION_ID他只就是使用清单文件里的packageName的值,最终你打包出来的APP只以你APP module的applicaionId为准,如果你想lib的代码里获取到当前应用包名(就是App module里的applicationId),用 context.getPackageName() 就行了,lib清单文件里的packageName也是用来设置R文件生成的包而已,方便你在lib里获取资源而已

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏