- Notifications
You must be signed in to change notification settings - Fork172
-
Hi ! First of all, thanks for this template ! It's awesome. I have a problem with my android build, I tried a lot of things but it seems to not working.. Here my `build.gradle`// Top-level build file where you can add configuration options common to all sub-projects/modules.buildscript {ext {buildToolsVersion ="29.0.2"minSdkVersion =16compileSdkVersion =29targetSdkVersion =29 }repositories {google()jcenter() }dependencies {classpath('com.android.tools.build:gradle:4.1.2')classpath'com.google.gms:google-services:4.3.5'// NOTE: Do not place your application dependencies here; they belong// in the individual module build.gradle files }}allprojects {repositories {mavenLocal()maven {// All of React Native (JS, Obj-C sources, Android binaries) is installed from npmurl("$rootDir/../../../node_modules/react-native/android") }maven {// Android JSC is installed from npmurl("$rootDir/../../../node_modules/jsc-android/dist") }google()jcenter()maven {url'https://www.jitpack.io' } }} Here my `app/build.gradle`applyplugin:"com.android.application"applyplugin:'com.google.gms.google-services'project.ext.envConfigFiles = [debug:".env",release:".env.production",staging:".env",]applyfrom:project(':react-native-config').projectDir.getPath() +"/dotenv.gradle"importcom.android.build.OutputFile/** * The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets * and bundleReleaseJsAndAssets). * These basically call `react-native bundle` with the correct arguments during the Android build * cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the * bundle directly from the development server. Below you can see all the possible configurations * and their defaults. If you decide to add a configuration block, make sure to add it before the * `apply from: "../../../../node_modules/react-native/react.gradle"` line. * * project.ext.react = [ * // the name of the generated asset file containing your JS bundle * bundleAssetName: "index.android.bundle", * * // the entry file for bundle generation. If none specified and * // "index.android.js" exists, it will be used. Otherwise "index.js" is * // default. Can be overridden with ENTRY_FILE environment variable. * entryFile: "index.android.js", * * // https://reactnative.dev/docs/performance#enable-the-ram-format * bundleCommand: "ram-bundle", * * // whether to bundle JS and assets in debug mode * bundleInDebug: false, * * // whether to bundle JS and assets in release mode * bundleInRelease: true, * * // whether to bundle JS and assets in another build variant (if configured). * // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants * // The configuration property can be in the following formats * // 'bundleIn${productFlavor}${buildType}' * // 'bundleIn${buildType}' * // bundleInFreeDebug: true, * // bundleInPaidRelease: true, * // bundleInBeta: true, * * // whether to disable dev mode in custom build variants (by default only disabled in release) * // for example: to disable dev mode in the staging build type (if configured) * devDisabledInStaging: true, * // The configuration property can be in the following formats * // 'devDisabledIn${productFlavor}${buildType}' * // 'devDisabledIn${buildType}' * * // the root of your project, i.e. where "package.json" lives * root: "../../", * * // where to put the JS bundle asset in debug mode * jsBundleDirDebug: "$buildDir/intermediates/assets/debug", * * // where to put the JS bundle asset in release mode * jsBundleDirRelease: "$buildDir/intermediates/assets/release", * * // where to put drawable resources / React Native assets, e.g. the ones you use via * // require('./image.png')), in debug mode * resourcesDirDebug: "$buildDir/intermediates/res/merged/debug", * * // where to put drawable resources / React Native assets, e.g. the ones you use via * // require('./image.png')), in release mode * resourcesDirRelease: "$buildDir/intermediates/res/merged/release", * * // by default the gradle tasks are skipped if none of the JS files or assets change; this means * // that we don't look at files in android/ or ios/ to determine whether the tasks are up to * // date; if you have any other folders that you want to ignore for performance reasons (gradle * // indexes the entire tree), add them here. Alternatively, if you have JS files in android/ * // for example, you might want to remove it from here. * inputExcludes: ["android/**", "ios/**"], * * // override which node gets called and with what additional arguments * nodeExecutableAndArgs: ["node"], * * // supply additional arguments to the packager * extraPackagerArgs: [] * ] */project.ext.react = [enableHermes:false,// clean and rebuild if changingcliPath:"../../node_modules/react-native/local-cli/cli.js",]applyfrom:"../../../../node_modules/react-native/react.gradle"/** * Set this to true to create two separate APKs instead of one: * - An APK that only works on ARM devices * - An APK that only works on x86 devices * The advantage is the size of the APK is reduced by about 4MB. * Upload all the APKs to the Play Store and people will download * the correct one based on the CPU architecture of their device. */defenableSeparateBuildPerCPUArchitecture =false/** * Run Proguard to shrink the Java bytecode in release builds. */defenableProguardInReleaseBuilds =false/** * The preferred build flavor of JavaScriptCore. * * For example, to use the international variant, you can use: * `def jscFlavor = 'org.webkit:android-jsc-intl:+'` * * The international variant includes ICU i18n library and necessary data * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that * give correct results when using with locales other than en-US. Note that * this variant is about 6MiB larger per architecture than default. */defjscFlavor ='org.webkit:android-jsc:+'/** * Whether to enable the Hermes VM. * * This should be set on project.ext.react and mirrored here. If it is not set * on project.ext.react, JavaScript will not be compiled to Hermes Bytecode * and the benefits of using Hermes will therefore be sharply reduced. */defenableHermes =project.ext.react.get("enableHermes",false);android {compileSdkVersionrootProject.ext.compileSdkVersioncompileOptions {sourceCompatibilityJavaVersion.VERSION_1_8targetCompatibilityJavaVersion.VERSION_1_8 }defaultConfig {applicationId"com.company.app"minSdkVersionrootProject.ext.minSdkVersiontargetSdkVersionrootProject.ext.targetSdkVersionversionCode1multiDexEnabledtrueversionName"1.0"resValue"string","build_config_package","com.company.app" }splits {abi {reset()enableenableSeparateBuildPerCPUArchitectureuniversalApkfalse// If true, also generate a universal APKinclude"armeabi-v7a","x86","arm64-v8a","x86_64" } }signingConfigs {debug {storeFilefile('debug.keystore')storePassword'android'keyAlias'androiddebugkey'keyPassword'android' }release {if (project.hasProperty('BS_PRO_RELEASE_STORE_FILE')) {storeFilefile(BS_PRO_RELEASE_STORE_FILE)storePasswordBS_PRO_RELEASE_STORE_PASSWORDkeyAliasBS_PRO_RELEASE_KEY_ALIASkeyPasswordBS_PRO_RELEASE_KEY_PASSWORD } } }buildTypes {debug {signingConfigsigningConfigs.debug }staging {matchingFallbacks = ['release','debug']signingConfigsigningConfigs.release }release {// Caution! In production, you need to generate your own keystore file.// see https://reactnative.dev/docs/signed-apk-android.signingConfigsigningConfigs.releaseminifyEnabledenableProguardInReleaseBuildsproguardFilesgetDefaultProguardFile("proguard-android.txt"),"proguard-rules.pro" } }// applicationVariants are e.g. debug, releaseapplicationVariants.all {variant ->variant.outputs.each {output ->// For each separate APK per architecture, set a unique version code as described here:// https://developer.android.com/studio/build/configure-apk-splits.htmldefversionCodes = ["armeabi-v7a":1, "x86":2, "arm64-v8a": 3, "x86_64": 4] def abi = output.getFilter(OutputFile.ABI) if (abi != null) { // null for the universal-debug, universal-release variants output.versionCodeOverride = versionCodes.get(abi) * 1048576 + defaultConfig.versionCode } } } packagingOptions { pickFirst 'lib/x86/libc++_shared.so' pickFirst 'lib/x86_64/libjsc.so' pickFirst 'lib/arm64-v8a/libjsc.so' pickFirst 'lib/arm64-v8a/libc++_shared.so' pickFirst 'lib/x86_64/libc++_shared.so' pickFirst 'lib/armeabi-v7a/libc++_shared.so' }}dependencies { implementation fileTree(dir: "libs",include: ["*.jar"])//noinspection GradleDynamicVersionimplementation "com.facebook.react:react-native:+" // From node_modules implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.1.0"debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") {excludegroup:'com.facebook.fbjni' }debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") {excludegroup:'com.facebook.flipper'excludegroup:'com.squareup.okhttp3',module:'okhttp' }debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}") {excludegroup:'com.facebook.flipper' }if (enableHermes) {defhermesPath = "../../../../node_modules/hermes-engine/android/"; debugImplementation files(hermesPath + "hermes-debug.aar") releaseImplementation files(hermesPath + "hermes-release.aar") } else { implementation jscFlavor }}// Run this once to be able to run the application with BUCK// puts all compile dependencies into folder libs for BUCK to usetask copyDownloadableDepsToLibs(type: Copy) { from configurations.compile into 'libs'}apply from: file("../../../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project) I tried to explicitly include the bundle using the Anyone got any ideas? |
BetaWas this translation helpful?Give feedback.
All reactions
Answered by gwenoleRApr 26, 2021
I think it was related to this issue :facebook/react-native#30177
I have updated my app to RN 0.64.0, and it works
Replies: 1 comment
-
I think it was related to this issue :facebook/react-native#30177 I have updated my app to RN 0.64.0, and it works |
BetaWas this translation helpful?Give feedback.
All reactions
0 replies
Answer selected bybrunolemos
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment