2017-06-13 110 views
0

我一直在使用gradle这个脚本succesfuly写我gradle.propreties文件,我将分享我的代码,配置gradle这个任务问题

build.gradle: 
afterEvaluate { 
processDebugGoogleServices.dependsOn switchToDebug 
processReleaseGoogleServices.dependsOn switchToRelease 
} 
String base = "URL" 
def slurper = new JsonSlurper() 

def app_data = slurper.parseText(base.toURL().text) 

def FileWriter mFile = new FileWriter(".........../gradle.properties") 

现在我面临的一个问题,关键和值对我在属性文件中使用默认配置 用于exp - applicationId,versionCode,versionname等。在编写我的gradle.property文件时,默认配置由android parrally执行我的 任务,由于系统无法找到applicationId,版本号,版本号等。

build.gradle: 
android { 
compileSdkVersion 25 
buildToolsVersion "25.0.2" 
defaultConfig { 
applicationId "${app_id}" 
minSdkVersion 15 
targetSdkVersion 23 
versionCode java.lang.Integer.parseInt("${version_code}") 
versionName "${version_name}" 

} 


Error:(51, 0) Could not get unknown property 'app_id' for ProductFlavor_Decorated{name=main, dimension=null, minSdkVersion=null, targetSdkVersion=null, renderscriptTargetApi=null, renderscriptSupportModeEnabled=null, renderscriptNdkModeEnabled=null, versionCode=null, versionName=null, applicationId=null, testApplicationId=null, testInstrumentationRunner=null, testInstrumentationRunnerArguments={}, testHandleProfiling=null, testFunctionalTest=null, signingConfig=null, resConfig=null, mBuildConfigFields={}, mResValues={}, mProguardFiles=[], mConsumerProguardFiles=[], mManifestPlaceholders={}} of type com.android.build.gradle.internal.dsl.ProductFlavor. 
<a href="openFile:.........../app/build.gradle">Open File</a> 

回答

1

要解决此问题,只需在根目录下创建一个文件other.gradle即可。把你的脚本放在该文件中,就像

task abc { 
String base = "URL" 
def slurper = new JsonSlurper() 

def app_data = slurper.parseText(base.toURL().text) 

def FileWriter mFile = new FileWriter(".........../gradle.properties") 
} 

现在你可以用-b选项执行gradle命令。例如

gradle -b other.gradle abc 

现在正常运行你的项目,你正在做的。