2017-08-10 89 views
0

我加入在的build.gradle(模块:应用程序)执行以下操作:加入productFlavors(模块:应用)给错误

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 25 
    buildToolsVersion "25.0.3" 

    defaultConfig { 
     applicationId "com.sis.newpro" 
     minSdkVersion 22 
     targetSdkVersion 25 
     testInstrumentationRunner 
"android.support.test.runner.AndroidJUnitRunner" 
    } 

    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 
'proguard-rules.pro' 
     } 

    } 
} 

productFlavors { 
    prod { 
     buildConfigField 'String', 'URL', '"http://api.abcd.com"' 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.android.support:appcompat-v7:25.3.1' 
    compile 'com.android.support.constraint:constraint-layout:1.0.2' 

} 

给出错误:(22,0)找不到方法在项目':app'中输入org.gradle.api.Project类型的参数[build_bqh9qnip9k7nqy2kbpova0vtq $ _run_closure2 @ 5b30b3a7]的productFlavors()。

我做错过任何事到的build.gradle添加(模块:应用程序),或者我是否需要添加任何东西的build.gradle(项目:NewProject)以下步骤来创建构建味

+1

发表您的build.gradle文件 –

+0

你在模块级gradle这个添加productFlavor? –

+0

是的增加了,build.gradle文件也在这里添加 – Tarumoy

回答

0

将您的productFlavors标记移动到android括号内,它需要是buildTypes的兄弟。


的build.gradle将结束是这样的:

android { 
    compileSdkVersion 25 
    buildToolsVersion "25.0.3" 

    defaultConfig { 
     applicationId "com.sis.newpro" 
     minSdkVersion 22 
     targetSdkVersion 25 
     testInstrumentationRunner 
     "android.support.test.runner.AndroidJUnitRunner" 
    } 

    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 
        'proguard-rules.pro' 
     } 

    } 
    productFlavors { 
     prod { 
      buildConfigField 'String', 'URL', '"http://api.abcd.com"' 
     } 
    } 
} 
+1

感谢lottttt – Tarumoy

0

如下:

productFlavors { 

TestFlavourType { 
       applicationId "com.test.flavour" 
       minSdkVersion 17 
       targetSdkVersion 25 
       versionCode 3 
       versionName "1.02" 
       multiDexEnabled true 
       } 

定义源设置不同文件夹中挑选:

sourceSets { 
     main { //Main 
      manifest.srcFile 'src/main/AndroidManifest.xml' - picks from Main 
      java.srcDirs = ['src/main/java'] 
      resources.srcDirs = ['src/main/java'] 
      aidl.srcDirs = ['src/main/java'] 
      renderscript.srcDirs = ['src/main/java'] 
      res.srcDirs = ['src/main/res'] 
      assets.srcDirs = ['src/main/assets'] 
     }    

如果你想保持不同的布局/风格/字符串u需要定义如下:

TestFlavourType { 
      res.srcDirs = ['src/TestFlavourType/res-TestFlavourType', 'src/CommonLayoutDir/res'] 
      // For resources it will look for the files in this path [src/TestFlavourType/res-TestFlavourType] else it will look in to this [src/CommonLayoutDir/res] 
      assets.srcDirs = ['src/TestFlavourType/assets', 'src/main/assets'] 
     }  
}  

}//productFlavors end 

在src目录下创建文件夹来维护单独的布局文件不同flavors.Please让我知道,如果有帮助。

+0

感谢您的宝贵意见,但我会在稍后尝试。 – Tarumoy