【问题标题】:get App name in gradle.build在 gradle.build 中获取 App 名称
【发布时间】:2017-11-09 15:16:42
【问题描述】:

您好,我有一个用于两个应用程序的通用模块,如果我在某个应用程序上运行,我想在该通用模块中添加一个依赖项,我尝试了下面的代码,但没有成功。

 if (project.getName() == 'MyApp')
    {
        compile 'com.facebook.react:react-native:0.49.5'
    } 

感谢任何帮助。

【问题讨论】:

  • 简单的答案是你不能。如果您的共享模块有任何需要 React Native 的代码,那么您的代码将无法编译。如果您的共享模块没有任何 React Native 代码,那么您不需要依赖项。您可以将该依赖项放在使用 React Native 的非共享模块中。
  • 问题是我正在创建 ReactFragment,所以我修改了扩展 Application 类的类,因此移动依赖项或类是一个问题,但无论如何 :)

标签: android gradle


【解决方案1】:

这个post 可能对你有帮助。听起来创建不同的产品风格是创建依赖条件的一种选择。

更新:

添加来自android studio documentation的productFlavors示例

android {
    ...


    defaultConfig {
        minSdkVersion 8
        versionCode 10
    }


    productFlavors {
        flavor1 {
            applicationId "com.example.flavor1"
            versionCode 20
         }


         flavor2 {
             applicationId "com.example.flavor2"
             minSdkVersion 14
         }
    }
}

dependencies {
    flavor1Compile "..."
    ...
    flavor2Compile “...”
}

如果这不足以满足您的需求,您可以始终让您的依赖项依赖于 external project dependencies,我提到的上述帖子中的一个示例如下:

dependencies {
    compile "com.squareup.leakcanary:leakcanary-android"+(project.ext.has("leakCanary")?"":"-no-op")+":1.3.1"
}

【讨论】:

  • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-11-07
  • 1970-01-01
  • 1970-01-01
  • 2013-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多