2017-05-11 8 views
0

私のプロジェクトのルートにlocal.propertiesファイルがあります。このようにlocal.propertiesからのAndroidの読み取り

sdk.dir=C\:\\Users\\vucet\\AppData\\Local\\Android\\Sdk 
versionName='7.0' 

とアプリモジュールでビルドGradleの中で、私はversionNameを取得しようとしています

Properties properties = new Properties() 
if (project.rootProject.file('local.properties').exists()) { 
    properties.load(project.rootProject.file('local.properties').newDataInputStream()) 
} 

def getVerCode = { -> 
    def code = project.hasProperty("versionCode") ? project.versionCode.toInteger() : 1000 
    return code 
} 

def getVerName = { -> 
    def name = project.hasProperty("versionName") ? project.versionName.toString() : "5.0" 
    return name 
} 

が、私は5.0の値を取得するたびに。誰でも助けてくれますか?

+0

移動 'versionName'をlocal.propertiesファイルを読み込む方法を、あなたはグローバルとして直接それを参照することができます定義された定数。 – CommonsWare

答えて

0

あなたはこの時点までは何も悪いことをしていないかどうかを確認するためにversionNameを印刷してみてください:

def getVerName = { -> 
    println project.versionName.toString() 
    ... 
} 

それとも、できれば、あなたはbuild.gradleからstraghtプロパティにアクセスすることができますようgradle.propertiesではなくファイルを使用してみてください:

gradle.properties:

versionName='7.0' 

build.gradle:

task printProps << { 
    println versionName 
    ... 
} 
+0

'<<'、左シフトは廃止されました。私たちは 'doLast {}'してください。 –

0

こんにちは、私は見つける方法gradle.properties` `へlocal.properties``からのGradleスクリプトで

def Properties properties = new Properties() 

if (project.rootProject.file('local.properties').canRead()) { 
    properties.load(new FileInputStream(project.rootProject.file('local.properties'))) 
    def versionBuild = properties['versionName'].toString() 

} else { 
    throw new GradleException("Could not read version.properties!") 
} 

def getVerCode = { -> 
    def code = properties.getProperty("versionCode", "1").toInteger() 
    return code 
} 

def getVerName = { -> 
    def name = properties.getProperty("versionName", "1") 
    return name 
} 
関連する問題