我正在尝试将android库上传到Jcenter,我已经成功创建了一个帐户,创建了一个存储库、包和版本。现在我正在修改模块的 build.gradle 文件,但我不断收到此错误
原因:groovy.lang.MissingPropertyException:无法获取 org.gradle.api.Project 类型的项目“:lokdonencrypt”的未知属性“publishedGroupId”。
如何解决这个问题
build.gradle(Module:lokencrypt)
apply plugin: 'com.android.library'
apply plugin: 'com.github.dcendents.android-maven'
apply plugin: 'com.jfrog.bintray'
android {
compileSdkVersion 29
buildToolsVersion "30.0.2"
defaultConfig {
minSdkVersion 21
targetSdkVersion 29
versionCode 1
versionName "0.0.1"
publishedGroupId "com.lokdonencryption.lokdonencryptionmodule:lokdonencrypt"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles "consumer-rules.pro"
}
/* task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) {
from androidJavadocs.destinationDir
classifier = 'javadoc'
}
task androidSourcesJar(type: Jar) {
from android.sourceSets.main.java.srcDirs
classifier = 'sources'
}*/
ext {
bintrayRepo = 'maven' // Name of the Bintray repo you created
bintrayName = ' com.lokdonencryption.lokdonencryptionmodule:lokdonencrypt' // Bintray package name
publishedGroupId = 'com.lokdonencryption.lokdonencryptionmodule:lokdonencrypt' // Group ID of the SDK which will be added in implementation line of gradle
artifact = 'lokdonencrypt' // Artifact ID of the SDK which will be added in implementation line of gradle
libraryVersion = '0.0.1' // Version of the library you created in Bintray
libraryName = 'lokdonencrypt' // It is generally the module name
libraryDescription = 'LokDon mobile encryption (ECSMID ) for developers'
siteUrl = 'https://github.com/UncleSamTech/LokdonEncryptionModule'
gitUrl = 'https://github.com/UncleSamTech/LokdonEncryptionModule.git'
developerId = 'cbusiness'
developerName = 'Lokdon'
developerEmail = '[email protected]'
licenseName = 'The Apache Software License, Version 2.0'
licenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
allLicenses = ["Apache-2.0"]
//Bintray Credentials
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
bintrayUsername = properties.getProperty('BINTRAY_USERNAME')
bintrayUserOrg = properties.getProperty('BINTRAY_ORG')
bintrayApiKey = properties.getProperty('BINTRAY_API_KEY')
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'com.google.android.material:material:1.2.1'
testImplementation 'junit:junit:4.+'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
implementation 'commons-io:commons-io:+'
implementation 'org.apache.commons:commons-io:1.3.2'
implementation 'commons-codec:commons-codec:1.8'
implementation 'com.amazonaws:aws-android-sdk-s3:2.7.+'
implementation 'com.amazonaws:aws-android-sdk-cognito:2.7.+'
}
apply from: 'bintray.script'
build.gradle(模块:应用程序)
plugins {
id 'com.android.application'
}
android {
compileSdkVersion 29
buildToolsVersion "30.0.2"
defaultConfig {
applicationId "com.lokdonencryption.lokdonencryptionmodule"
minSdkVersion 21
targetSdkVersion 29
versionCode 1
versionName "0.0.1"
//publishedGroupId "com.lokdonencryption.lokdonencryptionmodule:lokdonencrypt"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'com.google.android.material:material:1.2.1'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
testImplementation 'junit:junit:4.+'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
implementation project(":lokdonencrypt")
implementation 'commons-io:commons-io:+'
implementation 'commons-codec:commons-codec:1.8'
implementation 'org.apache.commons:commons-io:1.3.2'
implementation 'com.amazonaws:aws-android-sdk-s3:2.7.+'
implementation 'com.amazonaws:aws-android-sdk-cognito:2.7.+'
// implementation 'com.amazonaws.util.EncodingSchemeEnum.BASE64'
}
好吧,我来回答我的问题了。该错误是抛出的异常,它是 MissingPropertyException,这意味着我没有添加属性
解决方法是我将下面的这段代码复制到错误的 build.gradle 文件中
之前
代码位于我创建的新模块的 build.gradle 文件中,如下所示
ext {
bintrayRepo = 'maven' // Name of the Bintray repo you created
bintrayName = ' com.lokdonencryption.lokdonencryptionmodule:lokdonencrypt' // Bintray package name
publishedGroupId = 'com.lokdonencryption.lokdonencryptionmodule:lokdonencrypt' // Group ID of the SDK which will be added in implementation line of gradle
artifact = 'lokdonencrypt' // Artifact ID of the SDK which will be added in implementation line of gradle
libraryVersion = '0.0.1' // Version of the library you created in Bintray
libraryName = 'lokdonencrypt' // It is generally the module name
libraryDescription = 'LokDon mobile encryption (ECSMID ) for developers'
siteUrl = 'https://github.com/UncleSamTech/LokdonEncryptionModule'
gitUrl = 'https://github.com/UncleSamTech/LokdonEncryptionModule.git'
developerId = 'cbusiness'
developerName = 'Lokdon'
developerEmail = '[email protected]'
licenseName = 'The Apache Software License, Version 2.0'
licenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
allLicenses = ["Apache-2.0"]
//Bintray Credentials
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
bintrayUsername = properties.getProperty('BINTRAY_USERNAME')
bintrayUserOrg = properties.getProperty('BINTRAY_ORG')
bintrayApiKey = properties.getProperty('BINTRAY_API_KEY')
}
解决它
我只是将其复制并放入项目级模块的build.gradle文件中,错误就消失了。
检查下面的快照并查看更改