1

Androidスタジオプロジェクトがあり、グラドルを安定バージョン2.0.0から実験バージョン0.7.0-beta1に移植しようとしています:

これは、2.0.0 gradle コードの Android タグ モジュール内の作業コードです。

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"

    defaultConfig {
        applicationId "com.test.myapp"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"

        ndk {
            moduleName "myNativeLib"
        }
    }

    sourceSets.main {
        jniLibs.srcDir 'src/main/libs' //set .so files location to libs
        jni.srcDirs = [] //disable automatic ndk-build call
    }

    tasks.withType(JavaCompile) {
        compileTask -> compileTask.dependsOn ndkBuild
    }

    task runSwig(type: Exec, description: 'Run swig config') {
        workingDir 'src/main'
        commandLine 'cmd', '/c', 'swig.bat'
    }

    Properties props = new Properties()
    props.load(new FileInputStream(file(project.property("KeyStore.properties"))))

    signingConfigs {
        storeSignature {
            storeFile = file(props['KEYSTORE'])
            storePassword = props['KEYSTORE_PASSWD']
            keyAlias = props['KEYSTORE_MYAPP']
            keyPassword = props['KEYSTORE_MYAPP_PASSWD']
        }
    }

    buildTypes {
        def SERVER_URL = "SERVER_URL"
        debug {
            debuggable true
            jniDebuggable true
            buildConfigField "String", SERVER_URL, "\"http://testusound.eastus.cloudapp.azure.com/androidbackend/checkjson\""
            versionNameSuffix getMasterName() + "." + getDate()
        }        

        release {
            signingConfig signingConfigs.storeSignature
            debuggable false
            jniDebuggable false
            minifyEnabled false
            buildConfigField "String", SERVER_URL, "\"http://www.usound.co/androidbackend/checkjson\""
            versionNameSuffix getMasterName()
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

ここで、実験的なプラグイン 0.7.0-beta1 のコードを書き直そうとしました:

model {
    android {
        compileSdkVersion 23
        buildToolsVersion "23.0.3"

        defaultConfig.with {
            applicationId "com.test.myapp"
            minSdkVersion.apiLevel 15
            targetSdkVersion.apiLevel 23
            versionCode 1
            versionName "1.0"
        }

        ndk {
            moduleName "myNativeLib"
        }

        tasks.withType(JavaCompile) {
            compileTask -> compileTask.dependsOn ndkBuild
        }   

        task runSwig(type: Exec, description: 'Run swig config') {
            workingDir 'src/main'
            commandLine 'cmd', '/c', 'swig.bat'
        }

        buildConfigFields.with {
            create() {
                type "String"
                name "SERVER_URL"
                value "\"http://www.myserver.com/backend/checkjson\""
            }
        }

        buildConfigFields.with {
            create() {
                type "String"
                name "TEST_SERVER_URL"
                value "\"http://www.mytestserver.com/backend/checkjson\""
            }
        }

        sources {
            main {
                jni {
                    source {
                        srcDir "src"
                    }
                }
                jni.srcDirs = [] //disable automatic ndk-build call
            }
         }

         buildTypes {
            debug {
                debuggable true
                jniDebuggable true
                buildConfigField $("android.buildConfigFields.TEST_SERVER_URL")
                versionNameSuffix getMasterName() + "." + getDate()
            }
            release {
                signingConfig = $("android.signingConfigs.mySignature")
                debuggable false
                jniDebuggable false
                minifyEnabled false
                buildConfigField $("android.buildConfigFields.SERVER_URL")
                versionNameSuffix getMasterName()
                proguardFiles.add(file('proguard-rules.pro'))
            }
         }
         Properties props = new Properties()
         props.load(new FileInputStream(file(project.property("KeyStore.properties"))))
     }

     android.signingConfigs {
        create("mySignature")
        storeFile = file(props['KEYSTORE'])
        storePassword = props['KEYSTORE_PASSWD']
        keyAlias = props['KEYSTORE_MYAPP']
        keyPassword = props['KEYSTORE_MYAPP_PASSWD']
     }
}

私はsigningConfigsでこのエラーエラーを受け取っています:

Error:Attempt to read a write only view of model of type 'java.lang.Object' given to rule 'android.signingConfigs { ... } @ app\build.gradle line 165, column 5'

私のコードでは次の行になります:

android.signingConfigs {

私の署名構成には、メインフォルダーの下にあるkeystore.propertiesというファイルを使用しています(この方法で別のファイルに保存したいので、キーストア署名データをgitにアップロードしないので、現在の実験的な gradle プロジェクトのように署名構成キーを配置します)。

ここで何が欠けていますか?ファイルからロードされたプロパティを使用するには、署名構成をどのように記述すればよいですか? 私は実験的なグラドルを始めたばかりなので、役立つと思われる例や情報を自由に教えてください。

4

1 に答える 1