- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我已经从 3.1.1 更新到 Gradle 发行版 5.1.1,它涉及很多更改,包括更新 androidX 支持库。出于某种原因,build 一直未能要求更改 versionName 在 merged flavor 中的设置方式。我无法弄清楚我到底错过了什么,已经添加了 gradle 构建结果建议的代码。
构建.gradle
buildscript {
ext.kotlin_version = '1.3.40'
System.properties['com.android.build.gradle.overrideVersionCheck'] = 'true'
repositories {
maven { url 'https://maven.fabric.io/public' }
maven { url 'https://nexus.dminc-gtc.com/nexus/content/groups/public/' }
maven { url "https://jitpack.io" }
maven { url 'https://maven.google.com' }
maven { url 'https://repo.spring.io/libs-milestone' }
mavenLocal()
maven {
url 'https://maven.google.com/'
name 'Google'
}
maven { url "https://plugins.gradle.org/m2/" }
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.4.1'
//annotationProcessor 'com.neenbedankt.gradle.plugins:android-apt:1.4'
classpath 'com.dminc.gradle:android-release-plugin:1.0.0'
classpath 'io.fabric.tools:gradle:1.27.1'
classpath 'com.github.triplet.gradle:play-publisher:1.1.5'
classpath "org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.5"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.google.gms:google-services:4.0.1'
classpath 'com.github.alexfu:androidautoversion:3.0.2'
}
}
repositories {
maven { url 'https://maven.fabric.io/public' }
maven { url 'https://nexus.dminc-gtc.com/nexus/content/groups/public/' }
mavenLocal()
mavenCentral()
jcenter()
flatDir {
dirs 'libs'
}
maven { url "https://jitpack.io" }
maven { url 'http://maven.localytics.com/public' }
maven { url 'https://maven.google.com' }
maven { url 'https://repo.spring.io/libs-milestone' }
maven {
url 'https://maven.google.com/'
name 'Google'
}
}
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
//apply plugin: 'android-apt'
apply plugin: 'android-release-plugin'
apply plugin: 'com.google.gms.google-services'
apply from: 'checkstyle.gradle'
apply from: 'pmd.gradle'
apply from: 'findbugs.gradle'
apply plugin: 'com.github.triplet.play'
apply from: 'sonar.gradle'
apply plugin: 'com.github.alexfu.androidautoversion'
ext.androidAnnotationsVersion = '4.6.0'
android {
useLibrary 'org.apache.http.legacy'
compileSdkVersion 28
defaultConfig {
// These are applied to the manifest, to prevent nasty compat modes, use the latest you can.
minSdkVersion 19
targetSdkVersion 28
renderscriptTargetApi 19
renderscriptSupportModeEnabled true
}
releaseConfig {
// Set to true to add the version number from the apk name (default is false)
addVersionToApk false
// No default for propertyFile, you HAVE to specify it, it will be interpreted by the plugin as follow: [root_dir]/[propertyFile]
propertyFile "version.properties"
}
flavorDimensions 'white_label', 'server'
productFlavors {
newmoove {
// Assigns this product flavor to the "version" flavor dimension.
// This property is optional if you are using only one dimension.
dimension "white_label"
applicationId 'com.app.newmoove'
manifestPlaceholders = [crashlyticsApiKey: "*******************",
facebookAppId : "*************"]
}
wexer {
// Assigns this product flavor to the "version" flavor dimension.
// This property is optional if you are using only one dimension.
dimension "white_label"
applicationId 'com.app.wexer'
manifestPlaceholders = [crashlyticsApiKey: "*********************",
facebookAppId : "*************"]
}
customfit {
// Assigns this product flavor to the "version" flavor dimension.
// This property is optional if you are using only one dimension.
dimension "white_label"
applicationId 'com.appname.app'
manifestPlaceholders = [crashlyticsApiKey: "**********************"]
}
dev {
dimension "server"
applicationIdSuffix ".devtest"
versionNameSuffix "-dev"
}
integration {
dimension "server"
applicationIdSuffix ".integration"
versionNameSuffix "-integration"
}
staging {
dimension "server"
applicationIdSuffix ".staging"
versionNameSuffix "-staging"
}
live {
dimension "server"
}
}
// A lot of 3rd party libraries contain similar stuff.
packagingOptions {
exclude 'LICENSE.*'
exclude 'NOTICE.*'
exclude 'META-INF/services/javax.annotation.processing.Processor'
}
lintOptions {
quiet true
abortOnError false
ignoreWarnings true
}
applicationVariants.all { variant ->
variant.outputs.each { output ->
output.versionNameOverride = "5.0.1.91-5.0.1"
}
}
}
dependencies {
implementation fileTree(include: '*.jar', dir: 'libs')
implementation(name: 'Android-ViewPagerIndicator', ext: 'aar')
implementation(name: 'Fontify-release', ext: 'aar')
implementation(name: 'HoloGraphLibrary-release', ext: 'aar')
implementation(name: 'slidingmenu-release', ext: 'aar')
implementation 'com.mani:ThinDownloadManager:1.3.0'
implementation 'com.github.johnkil.print:print:1.3.1'
implementation 'com.nhaarman.listviewanimations:lib-core:3.1.0@aar'
implementation 'com.nhaarman.listviewanimations:lib-manipulation:3.1.0@aar'
implementation 'com.edmodo:rangebar:1.0.0'
implementation 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'
implementation 'de.greenrobot:eventbus:2.4.1'
implementation 'com.github.johnkil.android-appmsg:appmsg:1.2.0'
implementation 'com.path:android-priority-jobqueue:1.1.2'
implementation 'com.fasterxml.jackson.core:jackson-core:2.9.0'
implementation 'com.fasterxml.jackson.core:jackson-annotations:2.9.0'
implementation 'com.fasterxml.jackson.core:jackson-databind:2.9.0'
implementation 'com.j256.ormlite:ormlite-android:5.0'
implementation 'com.github.gabrielemariotti.cards:library:1.9.1'
implementation 'se.emilsjolander:stickylistheaders:2.7.0'
implementation 'com.google.code.gson:gson:2.3.1'
implementation 'com.google.android.gms:play-services-analytics:11.2.0'
implementation 'com.google.android.gms:play-services-maps:11.2.0'
implementation 'com.google.android.gms:play-services-location:11.2.0'
implementation 'com.google.android.gms:play-services-auth:11.2.0'
implementation 'com.google.android.gms:play-services-fitness:11.2.0'
implementation 'com.google.android.gms:play-services-ads:11.2.0'
implementation 'com.google.firebase:firebase-messaging:11.2.0'
implementation 'com.nineoldandroids:library:2.4.0'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
testImplementation 'org.robolectric:robolectric:3.4'
implementation 'com.facebook.android:facebook-android-sdk:4.+'
implementation('com.crashlytics.sdk.android:crashlytics:2.9.9@aar') {
transitive = true;
}
implementation 'com.soundcloud.android:android-crop:1.0.1@aar'
debugImplementation 'com.squareup.leakcanary:leakcanary-android:1.5.1'
// or 1.4-beta1
releaseImplementation 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.1'
// or 1.4-beta1
testImplementation 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.1'
// or 1.4-beta1
implementation 'com.localytics.android:library:5.4.0'
implementation 'com.github.tony19:timber-loggly:1.0.1'
implementation 'com.daimajia.swipelayout:library:1.2.0@aar'
implementation 'com.github.mmin18:realtimeblurview:1.1.0'
implementation 'org.apache.httpcomponents:httpclient:4.5.9'
implementation 'com.andkulikov:transitionseverywhere:1.7.5'
implementation 'org.ocpsoft.prettytime:prettytime:4.0.1.Final'
implementation 'net.danlew:android.joda:2.9.9'
implementation 'androidx.multidex:multidex:2.0.0'
implementation 'com.squareup.retrofit2:retrofit:2.3.0'
implementation('com.devbrackets.android:exomedia:4.0.3') {
exclude(module: 'support-v4')
exclude(module: 'appcompat-v7')
}
implementation 'org.springframework.android:spring-android-rest-template:2.0.0.M4'
implementation 'com.github.PhilJay:MPAndroidChart:v2.1.4'
implementation "org.androidannotations:androidannotations:${androidAnnotationsVersion}"
implementation "org.androidannotations:androidannotations-api:${androidAnnotationsVersion}"
implementation "org.androidannotations:rest-spring-api:${androidAnnotationsVersion}"
implementation "org.androidannotations:rest-spring:${androidAnnotationsVersion}"
implementation "org.androidannotations:ormlite-api:${androidAnnotationsVersion}"
implementation "org.androidannotations:ormlite:${androidAnnotationsVersion}"
implementation 'com.google.android.material:material:1.0.0'
implementation 'androidx.appcompat:appcompat:1.0.0'
implementation 'androidx.recyclerview:recyclerview:1.0.0'
implementation 'com.stripe:stripe-android:6.1.0'
implementation 'com.makeramen:roundedimageview:2.3.0'
implementation('androidx.cardview:cardview:1.0.0') {
force = true
}
implementation 'jp.wasabeef:blurry:2.1.1'
implementation 'com.otaliastudios:nestedscrollcoordinatorlayout:1.0.1'
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
//rx
implementation 'io.reactivex.rxjava2:rxandroid:2.0.2'
implementation 'io.reactivex.rxjava2:rxjava:2.2.0'
implementation 'androidx.cardview:cardview:1.0.0'
implementation 'com.journeyapps:zxing-android-embedded:3.2.0@aar'
implementation 'com.google.firebase:firebase-core:11.2.0'
implementation 'com.google.firebase:firebase-invites:11.2.0'
implementation group: 'com.neenbedankt.gradle.plugins', name: 'android-apt', version: '1.8'
}
无论我做什么,在构建项目时都无法通过以下错误。
最佳答案
在 build.gradle 中进行此更改(在错误窗口中建议)并进行干净的构建。
关于android - versionName 不能直接在 mergedFlavor 上设置,更新到 gradle 5.1.1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56742072/
在 spring-security项目,在 build.gradle文件,以下插件可用: apply plugin: 'io.spring.nohttp' apply plugin: 'locks'
我正在尝试使用gradle任务作为“与操作系统无关的shell脚本”。我在编写构建文件的逻辑时没有问题,但是我希望能够从任何文件夹中运行它。 我的第一次尝试是在路径上放置一个带有build.gradl
我在同一目录下有三个具有不同名称的build.gradle dev.build.gradle uat.build.gradle prd.build.gradle 我有4期 “gradle build”
乡亲们 有谁知道如何使用gradle与自定义的build.gradle和settings.gradle一起运行-即两者在一起? 我认为我可以有一个自定义的build.gradle文件(-b标志)-但这
Gradle 配置有两个属性,称为 dependencies和 incoming .根据我的理解,我们可以通过 Gradle 依赖 block 向配置添加依赖,如下所示: dependencies {
我正在测试将我的工件推送到 Nexus Maven 存储库。我正在使用 gradle这样做。 gradle upload有什么区别和 gradle publish ? 最佳答案 目前gradle提供了
这里有一个类似的问题:Gradle properties not being read from ~/.gradle/gradle.properties,但它不能解决我的问题。 在我看来,gradle
如何检索 Gradle 本身的版本 以编程方式从 Gradle 插件中? 最佳答案 刚刚发现可以使用任何一种方法来解决它 getProject().getGradle().getGradleVersi
2 个 gradle 项目,A 和 B,其中 A 定义了对 B 的编译依赖。为 maven 和 gradle 项目启用了 JAR 的重新映射。我试过启用和禁用自定义工具模型。我在 init.d 目录下
如何从 gradle 运行另一个 gradle 脚本。我有多个 gradle 脚本可以在 /test 下运行测试目录。 /build.gradle使用要运行的测试 gradle 文件的名称调用。例如
我已经看到了多模块项目的不同布局,其中有些项目只有一个 build.gradle。而其他项目将有 build.gradle在根和 build.gradle在每个子项目中。我想知道有什么区别以及首选哪种
我对 Gradle 生命周期有一个基本的询问。我的项目是一个多模块项目。 我注意到以下命令: ./gradlew clean bignibou-server:run 不等于运行以下两个命令按顺序运行:
我有一个项目,其中包含一个子项目,如下所示: Root Project |----gradle.build |----SubProject |----|----gradle.build 这里的子项目包
我有 gradle 项目,我想向不使用 gradle 或 maven 等构建工具的项目添加依赖项。 目录结构如下: commonfolder\ gradleProject\ b
我想创建一个类来帮助我加载不同类型的属性(local.properties,gradle.properties,$GRADLE_HOME/gradle.properties,环境变量,系统属性和自定义
我有一个多模块项目,其目录结构如下: proj |-modA |-modB |-modMain \-modSysTest 依赖项是: modB -> modA modMain -> modB modM
我正在尝试创建一个可以在 --offline 模式下工作的 gradle 项目的副本。除了一个步骤,我已经自动化了所有步骤。我无法自动将插件 jar 下载到 gradle 缓存中。 我的离线分发通过指
基本上我想这样做: Use Gradle function from other gradle file 也就是说,从另一个 gradle 脚本中调用一个函数。问题是我的 build.gradle 在
我有一个简单的 gradle 插件,我想试用一下,但我不确定如何“请求”gradle 运行我的测试 这是我要修改的 block (在我的 gradle 构建文件的顶部) buildscript {
在 Android Studio 中创建项目时,我收到以下错误消息。 Failed to import new Gradle project: Could not install Gradle dis
我是一名优秀的程序员,十分优秀!