Skip to content

Commit 771d133

Browse files
Ron RadtkeRon Radtke
authored andcommitted
Fixing problems for android studio
Merge branch 'cristianoccazinsp-fix-android-build' into master
2 parents e705a4e + d50c5c3 commit 771d133

File tree

6 files changed

+136
-48
lines changed

6 files changed

+136
-48
lines changed

android/build.gradle

Lines changed: 136 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,136 @@
1-
apply plugin: 'com.android.library'
2-
3-
def safeExtGet(prop, fallback) {
4-
rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback
5-
}
6-
7-
repositories {
8-
mavenCentral()
9-
jcenter()
10-
google()
11-
}
12-
13-
buildscript {
14-
repositories {
15-
jcenter()
16-
google()
17-
}
18-
dependencies {
19-
classpath 'com.android.tools.build:gradle:4.0.1'
20-
}
21-
}
22-
23-
android {
24-
compileSdkVersion safeExtGet('compileSdkVersion', 30)
25-
buildToolsVersion safeExtGet('buildToolsVersion', '28.0.3')
26-
defaultConfig {
27-
minSdkVersion safeExtGet('minSdkVersion', 16)
28-
targetSdkVersion safeExtGet('targetSdkVersion', 30)
29-
versionCode 1
30-
versionName "1.0"
31-
}
32-
buildTypes {
33-
release {
34-
minifyEnabled false
35-
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
36-
}
37-
}
38-
productFlavors {
39-
}
40-
}
41-
42-
dependencies {
43-
implementation "com.facebook.react:react-native:${safeExtGet('reactNativeVersion', '+')}"
44-
implementation 'com.squareup.okhttp3:okhttp:+'
45-
implementation 'com.squareup.okhttp3:logging-interceptor:+'
46-
implementation 'com.squareup.okhttp3:okhttp-urlconnection:+'
47-
// {ReactNativeBlobUtil_PRE_0.28_DEPDENDENCY}
48-
}
1+
apply plugin: 'com.android.library'
2+
apply plugin: 'maven'
3+
4+
def safeExtGet(prop, fallback) {
5+
rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback
6+
}
7+
8+
repositories {
9+
mavenCentral()
10+
mavenLocal()
11+
maven {
12+
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
13+
url "$rootDir/../node_modules/react-native/android"
14+
}
15+
maven {
16+
// Android JSC is installed from npm
17+
url "$rootDir/../node_modules/jsc-android/dist"
18+
}
19+
google()
20+
}
21+
22+
buildscript {
23+
// The Android Gradle plugin is only required when opening the android folder stand-alone.
24+
// This avoids unnecessary downloads and potential conflicts when the library is included as a
25+
// module dependency in an application project.
26+
// ref: https://docs.gradle.org/current/userguide/tutorial_using_tasks.html#sec:build_script_external_dependencies
27+
if (project == rootProject) {
28+
repositories {
29+
google()
30+
mavenCentral()
31+
}
32+
dependencies {
33+
classpath 'com.android.tools.build:gradle:4.1.0'
34+
}
35+
}
36+
}
37+
38+
android {
39+
compileSdkVersion safeExtGet('compileSdkVersion', 30)
40+
buildToolsVersion safeExtGet('buildToolsVersion', '28.0.3')
41+
defaultConfig {
42+
minSdkVersion safeExtGet('minSdkVersion', 16)
43+
targetSdkVersion safeExtGet('targetSdkVersion', 30)
44+
versionCode 1
45+
versionName "1.0"
46+
}
47+
buildTypes {
48+
release {
49+
minifyEnabled false
50+
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
51+
}
52+
}
53+
productFlavors {
54+
}
55+
}
56+
57+
dependencies {
58+
implementation "com.facebook.react:react-native:${safeExtGet('reactNativeVersion', '+')}"
59+
implementation 'com.squareup.okhttp3:okhttp:+'
60+
implementation 'com.squareup.okhttp3:logging-interceptor:+'
61+
implementation 'com.squareup.okhttp3:okhttp-urlconnection:+'
62+
// {ReactNativeBlobUtil_PRE_0.28_DEPDENDENCY}
63+
}
64+
65+
def configureReactNativePom(def pom) {
66+
def packageJson = new groovy.json.JsonSlurper().parseText(file('../package.json').text)
67+
68+
pom.project {
69+
name packageJson.title
70+
artifactId packageJson.name
71+
version = packageJson.version
72+
group = "com.ReactNativeBlobUtil"
73+
description packageJson.description
74+
url packageJson.repository.baseUrl
75+
76+
licenses {
77+
license {
78+
name packageJson.license
79+
url packageJson.repository.baseUrl + '/blob/master/' + packageJson.licenseFilename
80+
distribution 'repo'
81+
}
82+
}
83+
84+
developers {
85+
developer {
86+
id packageJson.author.username
87+
name packageJson.author.name
88+
}
89+
}
90+
}
91+
}
92+
93+
afterEvaluate { project ->
94+
// some Gradle build hooks ref:
95+
// https://www.oreilly.com/library/view/gradle-beyond-the/9781449373801/ch03.html
96+
task androidJavadoc(type: Javadoc) {
97+
source = android.sourceSets.main.java.srcDirs
98+
classpath += files(android.bootClasspath)
99+
classpath += files(project.getConfigurations().getByName('compile').asList())
100+
include '**/*.java'
101+
}
102+
103+
task androidJavadocJar(type: Jar, dependsOn: androidJavadoc) {
104+
classifier = 'javadoc'
105+
from androidJavadoc.destinationDir
106+
}
107+
108+
task androidSourcesJar(type: Jar) {
109+
classifier = 'sources'
110+
from android.sourceSets.main.java.srcDirs
111+
include '**/*.java'
112+
}
113+
114+
android.libraryVariants.all { variant ->
115+
def name = variant.name.capitalize()
116+
def javaCompileTask = variant.javaCompileProvider.get()
117+
118+
task "jar${name}"(type: Jar, dependsOn: javaCompileTask) {
119+
from javaCompileTask.destinationDir
120+
}
121+
}
122+
123+
artifacts {
124+
archives androidSourcesJar
125+
archives androidJavadocJar
126+
}
127+
128+
task installArchives(type: Upload) {
129+
configuration = configurations.archives
130+
repositories.mavenDeployer {
131+
// Deploy to react-native-event-bridge/maven, ready to publish to npm
132+
repository url: "file://${projectDir}/../android/maven"
133+
configureReactNativePom pom
134+
}
135+
}
136+
}

0 commit comments

Comments
 (0)