2016-07-15 13 views
2

さまざまなビルド環境でFabricを有効にする必要があります。また、AndroidスタジオまたはCIサーバー(jenkins)を使用してapkをビルドしたかどうかも考慮する必要があります。私が使用して考えています アプローチがされています。今、私の質問は、私はDEV1とDEV2製品 味からタスクenableFabricを呼び出すにはどうすればよいproductflavorからgradleタスクを呼び出す方法

  1. ある

    defaultConfig { 
        applicationId "com.pack.proj" 
        minSdkVersion 19 
        targetSdkVersion 23 
        versionCode 12 
        ext.buildNumber = System.getenv("BUILD_NUMBER") ?: "dev" 
        versionName "1.2.$buildNumber" 
        signingConfig signingConfigs.inspection 
    } 
    
    productFlavors { 
         dev1 { 
          resValue 'string', 'app_name', 'App Name' 
          resValue 'string', 'base_url', 'http://dev1.server.in/' 
          buildConfigField 'boolean', 'USE_FABRIC', 'true' 
    
         } 
         dev2 { 
          resValue 'string', 'app_name', 'App Name' 
          resValue 'string', 'base_url', 'http://dev2.server.in/' 
          // ********HOW DO I CALL THE TASK 'enableFabric' FROM HERE********* 
         } 
    } 
    
    task enableFabric{ 
        if(versionName.contains('dev')) 
         buildConfigField 'boolean', 'USE_FABRIC', 'false' 
        else 
         buildConfigField 'boolean', 'USE_FABRIC', 'true' 
    } 
    

  2. グラデルスクリプトを実行すると、versionNameが認識できないプロパティであるenableFabricのエラーが発生しますか?
  3. buildConfigField 'boolean', 'USE_FABRIC', 'true' defaultConfigで使用すると、私にとって問題があります。 (真BuildConfig.USE_FABRIC ==)場合、私は

    を使用するときにJavaコードで

{// は何か をDO}。

答えて

1

if elseを直接dev2に入れます。あなたはそれを一度代わりにタスク

例の機能にそれを回すよりも多く使用することを計画している場合か:あなたandroidブロックの

productFlavors { 
    dev1 { 
     resValue 'string', 'app_name', 'App Name' 
     resValue 'string', 'base_url', 'http://dev1.server.in/' 
     buildConfigField 'boolean', 'USE_FABRIC', 'true' 

    } 
    dev2 { 
     resValue 'string', 'app_name', 'App Name' 
     resValue 'string', 'base_url', 'http://dev2.server.in/' 
     buildConfigField 'boolean', 'USE_FABRIC', useFabric() 
    } 
} 

外側を、

def useFabric() { 
    if (versionName.contains('dev')) 
     return false; 
    else return true; 
} 
+0

ような何かを私はいけません私は他の20の環境も持っているのでdev2で直接やりたいと思っています。また、サンプル/サンプルコードを使用して説明することもできます。 – Ichthyocentaurs

+0

編集を参照してください – eriuzo

+0

申し訳ありませんが、遅い応答がBuildConfig.USE_FABRICは未知の可変コンパイルエラーを示しています。 – Ichthyocentaurs

関連する問題