我试图修改android studio中的开源代码,但我一直得到错误:(134,0)Could not get unknown property 'release' for type org.gradle.api.internal.FactoryNamedDomainObjectContainer.有谁知道密码出了什么问题吗?下面是build.gradle文件中的代码。
//apply plugin: 'idea'
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
android {
// Create a variable called keystorePropertiesFile, and initialize it to your
// keystore.properties file, in the rootProject folder.
def keystorePropertiesFile = rootProject.file("keystore.properties")
if (keystorePropertiesFile.exists()) {
Properties keystoreProperties = new Properties();
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
compileSdkVersion 27
buildToolsVersion "$supportLibraryVersion"
defaultConfig {
applicationId "org.bottiger.podcast"
minSdkVersion 16
targetSdkVersion 27
versionCode 424 // even - release. Odd - development
versionName "0.160.2" // even - release. Odd - development
multiDexEnabled = true
vectorDrawables.useSupportLibrary = true
// Espresso
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
externalNativeBuild {
cmake {
cppFlags "-std=c++11"
arguments '-DANDROID_PLATFORM=android-16', '-DANDROID_TOOLCHAIN=clang'
}
}
}
dataBinding {
enabled = true
}
// Point Gradle at the directory where you want to root all of your native code
// There is a default directory but I prefer to control which directories to use
// and there will be a point later where keeping control over this is important
sourceSets.main {
jni.srcDirs = ["src/main/jni"];
java.srcDirs += 'src/main/kotlin'
}
lintOptions {
checkReleaseBuilds false
abortOnError false
}
packagingOptions {
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/LICENSE'
exclude 'META-INF/NOTICE'
exclude 'LICENSE.txt'
exclude 'META-INF/rxjava.properties'
}
flavorDimensions "default"
productFlavors {
dev {
// To avoid using legacy multidex when building from the command line,
// set minSdkVersion to 21 or higher. When using Android Studio 2.3 or higher,
// the build automatically avoids legacy multidex when deploying to a device running
// API level 21 or higher—regardless of what you set as your minSdkVersion.
minSdkVersion 21
versionNameSuffix "-dev"
//applicationIdSuffix '.dev'
// The following configuration limits the "dev" flavor to using
// English stringresources and xxhdpi screen-density resources.
resConfigs "en", "xxhdpi"
buildConfigField "boolean", "DEV_MODE", "true"
buildConfigField "boolean", "PRIVATE_MODE", "false"
buildConfigField "boolean", "LIBRE_MODE", "false"
dimension "default"
}
free {
ndk {
abiFilters "armeabi-v7a", "x86"
}
buildConfigField "boolean", "DEV_MODE", "false"
buildConfigField "boolean", "PRIVATE_MODE", "true"
buildConfigField "boolean", "LIBRE_MODE", "true"
dimension "default"
}
google {
buildConfigField "boolean", "DEV_MODE", "false"
buildConfigField "boolean", "PRIVATE_MODE", "false"
buildConfigField "boolean", "LIBRE_MODE", "false"
dimension "default"
}
amazon {
buildConfigField "boolean", "DEV_MODE", "false"
buildConfigField "boolean", "PRIVATE_MODE", "false"
buildConfigField "boolean", "LIBRE_MODE", "false"
dimension "default"
}
}
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
}
}
android.buildTypes.release.signingConfig = signingConfigs.release
} else {
android.buildTypes.release.signingConfig = null
}
buildTypes {
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
}
// http://stackoverflow.com/questions/22851103/android-studio-gradle-error-multiple-dex-files-define
dexOptions {
preDexLibraries true
maxProcessCount 8
javaMaxHeapSize "2g"
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
// Encapsulates your external native build configurations.
externalNativeBuild {
// Encapsulates your CMake build configurations.
cmake {
// Provides a relative path to your CMake build script.
path "src/main/cpp/CMakeLists.txt"
}
}
}
repositories {
mavenCentral()
maven { url 'https://jitpack.io' }
google()
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:multidex:1.0.2'
compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
compile "com.android.support:support-v4:$supportLibraryVersion"
compile "com.android.support:appcompat-v7:$supportLibraryVersion"
compile "com.android.support:recyclerview-v7:$supportLibraryVersion"
compile "com.android.support:palette-v7:$supportLibraryVersion"
compile "com.android.support:cardview-v7:$supportLibraryVersion"
compile "com.android.support:mediarouter-v7:$supportLibraryVersion"
compile "com.android.support:design:$supportLibraryVersion"
compile "com.android.support:percent:$supportLibraryVersion"
compile "android.arch.lifecycle:runtime:$architectureComponentsVersion"
compile "android.arch.lifecycle:extensions:$architectureComponentsVersion"
compile "android.arch.lifecycle:reactivestreams:$architectureComponentsVersion"
annotationProcessor "android.arch.lifecycle:compiler:$architectureComponentsVersion"
compile "android.arch.persistence.room:runtime:$architectureComponentsVersion"
annotationProcessor "android.arch.persistence.room:compiler:$architectureComponentsVersion"
compile "android.arch.persistence.room:rxjava2:$architectureComponentsVersion"
compile 'com.android.support.constraint:constraint-layout:1.0.2'
compile "com.squareup.okhttp3:okhttp:$okhttp_version"
compile 'com.squareup.retrofit2:retrofit:2.2.0'
compile 'com.squareup.retrofit2:converter-gson:2.2.0'
compile('com.googlecode.json-simple:json-simple:1.1.1') {
exclude module: 'junit'
}
//compile 'com.google.apis:google-api-services-drive:+'
compile 'io.reactivex:rxandroid:1.2.1'
compile 'io.reactivex:rxjava:1.3.0'
compile 'com.jakewharton.rxbinding2:rxbinding:2.0.0'
compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
compile 'io.reactivex.rxjava2:rxjava:2.1.8'
compile 'io.requery:sqlite-android:3.20.0'
compile 'com.google.android.exoplayer:exoplayer:2.6.1'
compile('com.wdullaer:materialdatetimepicker:3.1.1') {
exclude group: 'com.android.support'
}
// Glide
compile "com.github.bumptech.glide:glide:$glide_version"
compile "com.github.bumptech.glide:okhttp3-integration:$glide_version"
compile "com.github.bumptech.glide:compiler:$glide_version"
compile "com.github.bumptech.glide:recyclerview-integration:$glide_version"
annotationProcessor "com.github.bumptech.glide:compiler:$glide_version"
compile 'net.steamcrafted:materialiconlib:1.1.2'
compile 'org.whispersystems:libpastelog:1.0.7'
compile 'com.bignerdranch.android:recyclerview-multiselect:0.2'
compile 'com.google.http-client:google-http-client-gson:1.22.0'
compile 'jp.wasabeef:recyclerview-animators:2.2.6'
compile 'com.fasterxml.jackson.core:jackson-databind:2.8.6'
compile 'com.nineoldandroids:library:2.4.0'
compile 'com.bugsnag:bugsnag-android:3.8.0'
compile 'com.journeyapps:zxing-android-embedded:3.4.0'
compile 'com.heinrichreimersoftware:material-intro:1.6.2'
compile 'com.dmitrymalkovich.android:material-design-dimens:1.4'
compile 'com.github.daniel-stoneuk:material-about-library:2.2.3-support26.1.0'
compile 'org.unbescape:unbescape:1.1.4.RELEASE'
compile 'com.google.dagger:dagger:2.10'
annotationProcessor 'com.google.dagger:dagger-compiler:2.10'
compile project(':armv7-fmmr')
// For testing only
testCompile 'junit:junit:4.12'
testCompile 'org.mockito:mockito-core:2.7.19'
testCompile("android.arch.persistence.room:testing:$architectureComponentsVersion") {
exclude group: 'com.android.support'
exclude group: 'com.google.code.gson'
}
configurations.all {
resolutionStrategy.force "com.android.support:support-annotations:$supportLibraryVersion"
resolutionStrategy.force 'com.google.code.findbugs:jsr305:3.0.1'
exclude group: "org.apache.httpcomponents", module: "httpclient"
}
// Espresso
// https://developer.android.com/training/testing/ui-testing/espresso-testing.html
androidTestCompile 'com.android.support.test:runner:1.0.1'
androidTestCompile 'com.android.support.test:rules:1.0.1'
androidTestCompile 'com.jakewharton.espresso:okhttp3-idling-resource:1.0.0'
androidTestCompile "com.squareup.okhttp3:okhttp:$okhttp_version"
androidTestCompile("com.android.support.test.espresso:espresso-contrib:$espressoVersion") {
exclude group: 'com.android.support'
}
androidTestCompile("com.android.support.test.espresso:espresso-core:$espressoVersion") {
exclude group: 'com.android.support', module: 'support-annotations'
}
// Free version
// Amazon version
amazonCompile fileTree(dir: 'src/amazon/libs', include: ['*.jar'])
amazonCompile "com.google.android.gms:play-services-cast:$playServicesVersion"
amazonCompile "com.google.android.gms:play-services-cast-framework:$playServicesVersion"
amazonCompile "com.google.android.gms:play-services-auth:$playServicesVersion"
amazonCompile "com.google.android.gms:play-services-location:$playServicesVersion"
amazonCompile "com.google.firebase:firebase-messaging:$playServicesVersion"
// google cast
// Play Store
googleCompile "com.google.android.gms:play-services-analytics:$playServicesVersion"
// analytics
googleCompile "com.google.android.gms:play-services-cast:$playServicesVersion"
googleCompile "com.google.android.gms:play-services-cast-framework:$playServicesVersion"
googleCompile "com.google.android.gms:play-services-auth:$playServicesVersion"
googleCompile "com.google.android.gms:play-services-location:$playServicesVersion"
googleCompile "com.google.firebase:firebase-core:$playServicesVersion"
googleCompile "com.google.firebase:firebase-messaging:$playServicesVersion"
googleCompile "com.google.firebase:firebase-database:$playServicesVersion"
// google cast
compile project(':soundwavescommon')
}
apply plugin: 'com.google.gms.google-services'
5条答案
按热度按时间bjp0bcyl1#
我也面临着同样的问题。在我的例子中我只是把
signingConfigs{}
放在buildTypes{}
上面yftpprvb2#
在我的例子中,我已经有了
signingConfigs{}
块。我所做的是修复这个问题,确保
signingConfigs{}
块在buildTypes{}
块之前声明。我不知道Gradle文件是按声明位置定向的。
lymgl2op3#
请尝试以下10个步骤:
1.进入Android Studio顶部面板的“Build”。
1.选择“编辑构建变体"。
1.进入“Modules"(左侧)。
1.点击“登录密码”
1.点击“+”号,输入“release”。
1.单击应用和确定
在此之后,请输入您的密钥库详细信息,
1.进入左侧相同位置的“Build variants”。
1.点击“发布”
1.向下滚动并转到“sign in config”并选择“$signinConfig.release”
1.单击应用和确定。
eulz3vhy4#
我在使用React Native创建APK时遇到了同样的问题。通过更改signingConfigs的范围解决了此问题。
来源:https://github.com/researchgate/gradle-release/issues/187
ldxq2e6h5#
在我的例子中(不在
signingConfig
块中),我在gradle文件中使用了一个名为release
的属性,该属性应用于我的模块gradle文件。在这个文件中,我使用了这个
release
属性,它没有在任何地方定义。所以我只是解决了这个问题。