mirror of
https://github.com/zhigang1992/react-navigation.git
synced 2026-02-10 22:47:02 +08:00
Add suport to gradle 4.10.1 or high! The new version of android studio 3.3 recommendete to update gradle project to 4.10.1 > To take advantage of the latest features, improvements, and security fixes, we strongly recommend that you update the Android Gradle plugin to version 3.3.0 and Gradle to version 4.10.1. [Release notes ](https://developer.android.com/studio/releases/gradle-plugin) >Android plugin 3.2.0 and higher now support building the Android App Bundle—a new upload format that defers APK generation and signing to compatible app stores, such as Google Play. With app bundles, you no longer have to build, sign, and manage multiple APKs, and users get smaller, more optimized downloads. [Learn more](https://developer.android.com/guide/app-bundle/?utm_source=android-studio) but if the upgrade to the new Android gradle warning come up, becouse was obsoleted > WARNING: API 'variant.getJavaCompile()' is obsolete and has been replaced with 'variant.getJavaCompileProvider()'. > It will be removed at the end of 2019. > For more information, [see ](https://d.android.com/r/tools/task-configuration-avoidance.) > To determine what is calling variant.getJavaCompile(), use -Pandroid.debug.obsoleteApi=true on the command line to display a stack trace. Changelog: ---------- [Android] [Deprecated] - fix warinings obsolete to update to gradle 4.10.1 or high Test Plan: ---------- change gradle-wrapper.proprerties: `- distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip` `+ distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip` and in build.gradle ` - classpath 'com.android.tools.build:gradle:3.2.0'` `+ classpath 'com.android.tools.build:gradle:3.3.0'` for warnnings starts, use this change and fix the problem! =)
120 lines
3.3 KiB
Groovy
120 lines
3.3 KiB
Groovy
|
|
buildscript {
|
|
repositories {
|
|
google()
|
|
jcenter()
|
|
}
|
|
|
|
dependencies {
|
|
classpath 'com.android.tools.build:gradle:3.1.4'
|
|
}
|
|
}
|
|
|
|
apply plugin: 'com.android.library'
|
|
apply plugin: 'maven'
|
|
|
|
def safeExtGet(prop, fallback) {
|
|
rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback
|
|
}
|
|
|
|
android {
|
|
compileSdkVersion safeExtGet('compileSdkVersion', 26)
|
|
buildToolsVersion safeExtGet('buildToolsVersion', '26.0.3')
|
|
|
|
defaultConfig {
|
|
minSdkVersion safeExtGet('minSdkVersion', 16)
|
|
targetSdkVersion safeExtGet('targetSdkVersion', 22)
|
|
versionCode 1
|
|
versionName "1.0"
|
|
}
|
|
lintOptions {
|
|
abortOnError false
|
|
}
|
|
}
|
|
|
|
repositories {
|
|
maven {
|
|
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
|
|
// Matches the RN Hello World template
|
|
// https://github.com/facebook/react-native/blob/1e8f3b11027fe0a7514b4fc97d0798d3c64bc895/local-cli/templates/HelloWorld/android/build.gradle#L21
|
|
url "$projectDir/../node_modules/react-native/android"
|
|
}
|
|
mavenCentral()
|
|
}
|
|
|
|
dependencies {
|
|
implementation 'com.facebook.react:react-native:+'
|
|
implementation "com.android.support:appcompat-v7:${safeExtGet('supportLibVersion', '26.+')}"
|
|
}
|
|
|
|
def configureReactNativePom(def pom) {
|
|
def packageJson = new groovy.json.JsonSlurper().parseText(file('../package.json').text)
|
|
|
|
pom.project {
|
|
name packageJson.title
|
|
artifactId packageJson.name
|
|
version = packageJson.version
|
|
group = "com.swmansion.rnscreens"
|
|
description packageJson.description
|
|
url packageJson.repository.baseUrl
|
|
|
|
licenses {
|
|
license {
|
|
name packageJson.license
|
|
url packageJson.repository.baseUrl + '/blob/master/' + packageJson.licenseFilename
|
|
distribution 'repo'
|
|
}
|
|
}
|
|
|
|
developers {
|
|
developer {
|
|
id packageJson.author.username
|
|
name packageJson.author.name
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
afterEvaluate { project ->
|
|
|
|
task androidJavadoc(type: Javadoc) {
|
|
source = android.sourceSets.main.java.srcDirs
|
|
classpath += files(android.bootClasspath)
|
|
classpath += files(project.getConfigurations().getByName('compile').asList())
|
|
include '**/*.java'
|
|
}
|
|
|
|
task androidJavadocJar(type: Jar, dependsOn: androidJavadoc) {
|
|
classifier = 'javadoc'
|
|
from androidJavadoc.destinationDir
|
|
}
|
|
|
|
task androidSourcesJar(type: Jar) {
|
|
classifier = 'sources'
|
|
from android.sourceSets.main.java.srcDirs
|
|
include '**/*.java'
|
|
}
|
|
|
|
android.libraryVariants.all { variant ->
|
|
def name = variant.name.capitalize()
|
|
task "jar${name}"(type: Jar, dependsOn: variant.javaCompileProvider.get()) {
|
|
from variant.javaCompileProvider.get().destinationDir
|
|
}
|
|
}
|
|
|
|
artifacts {
|
|
archives androidSourcesJar
|
|
archives androidJavadocJar
|
|
}
|
|
|
|
task installArchives(type: Upload) {
|
|
configuration = configurations.archives
|
|
repositories.mavenDeployer {
|
|
// Deploy to react-native-event-bridge/maven, ready to publish to npm
|
|
repository url: "file://${projectDir}/../android/maven"
|
|
|
|
configureReactNativePom pom
|
|
}
|
|
}
|
|
}
|