React-native: рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдирд┐рд╖реНрдкрд╛рджрди рд╡рд┐рдлрд▓ рд░рд╣рд╛ ': app: processReleaseResources'ред

рдХреЛ рдирд┐рд░реНрдорд┐рдд 13 рдордИ 2018  ┬╖  73рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: facebook/react-native

рд╣рдо рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд░рд┐рдПрдХреНрдЯ рдиреЗрдЯрд┐рд╡ рдореЗрдВ рдмрдЧреНрд╕ рдкрд░ рдирдЬрд╝рд░ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП GitHub рдХреЗ рдореБрджреНрджреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдкреНрд░рд╢рди? Http://facebook.github.io/react-native/help.html рдкрд░ рдЬрд╛рдПрдВред рдпрджрд┐ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдпрд╛ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдЗрд╕реЗ рдпрд╣рд╛рдВ рджрд░реНрдЬ рдХрд░реЗрдВ: https://github.com/facebook/react-native-website/issues /рдирдпрд╛

рдЕрдкрдиреЗ рдореБрджреНрджреЗ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрди рдХрд░реЗрдВред

рд╡рд╛рддрд╛рд╡рд░рдг:

рдУрдПрд╕: рд▓рд┐рдирдХреНрд╕ 4.13
рдиреЛрдб: 9.10.1
рд╕реВрдд: 1.6.0
рдПрдирдкреАрдПрдо: 5.6.0
рдЪреМрдХреАрджрд╛рд░: рдирд╣реАрдВ рдорд┐рд▓рд╛
Xcode: рдПрди / рдП
Android Studio: рдирд╣реАрдВ рдорд┐рд▓рд╛

рдкреИрдХреЗрдЬ: (рд╡рд╛рдВрдЫрд┐рдд => рд╕реНрдерд╛рдкрд┐рдд)

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛: 16.3.1 => 16.3.1
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓: 0.55.3 => 0.55.3

рдкреНрд░рдЬрдирди рдХрд░рдиреЗ рдХрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛

./gradlew assembleRelease

рдЕрдкреЗрдХреНрд╖рд┐рддреН рд╡реНрдпрд╡рд╣рд╛рд░

рдХрд╛рдо рдХрд░реЛ???

рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реНрдпрд╡рд╣рд╛рд░

рд▓рдХрдбрд╝реА рдХрд╛ рд▓рдард╛:

/home/rodrigo/Documentos/React-Native/Projetos-Independentes/PetShop/PetShop/android/app/build/intermediates/res/merged/release/drawable-mdpi/node_modules_reactnativecheckbox_img_ic_check_box_outline_blank.png: error: uncompiled PNG file passed as argument. Must be compiled first into .flat file..
error: failed parsing overlays.


Task :app:processReleaseResources
Failed to execute aapt
com.android.ide.common.process.ProcessException: Failed to execute aapt
        at com.android.builder.core.AndroidBuilder.processResources(AndroidBuilder.java:796)
        at com.android.build.gradle.tasks.ProcessAndroidResources.invokeAaptForSplit(ProcessAndroidResources.java:551)
        at com.android.build.gradle.tasks.ProcessAndroidResources.doFullTaskAction(ProcessAndroidResources.java:285)
        at com.android.build.gradle.internal.tasks.IncrementalTask.taskAction(IncrementalTask.java:109)
        at sun.reflect.GeneratedMethodAccessor59.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
        at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$IncrementalTaskAction.doExecute(DefaultTaskClassInfoStore.java:173)
        at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:134)
        at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:121)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:122)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:197)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:107)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:111)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:92)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:70)
        at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:63)
        at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
        at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
        at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:88)
        at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:52)
        at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
        at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
        at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
        at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:248)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:197)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:107)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:241)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:230)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:124)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access$200(DefaultTaskPlanExecutor.java:80)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:105)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:99)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:625)
        at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:580)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:99)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
        at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
        at java.lang.Thread.run(Thread.java:748)
Caused by: java.util.concurrent.ExecutionException: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
        at com.google.common.util.concurrent.AbstractFuture.getDoneValue(AbstractFuture.java:503)
        at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:482)
        at com.google.common.util.concurrent.AbstractFuture$TrustedFuture.get(AbstractFuture.java:79)
        at com.android.builder.core.AndroidBuilder.processResources(AndroidBuilder.java:794)
        ... 47 more
Caused by: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
        at com.google.common.util.concurrent.AbstractFuture.getDoneValue(AbstractFuture.java:503)
        at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:462)
        at com.google.common.util.concurrent.AbstractFuture$TrustedFuture.get(AbstractFuture.java:79)
        at com.android.builder.internal.aapt.v2.QueueableAapt2.lambda$makeValidatedPackage$1(QueueableAapt2.java:179)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        ... 1 more
Caused by: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
        at com.android.builder.png.AaptProcess$NotifierProcessOutput.handleOutput(AaptProcess.java:463)
        at com.android.builder.png.AaptProcess$NotifierProcessOutput.err(AaptProcess.java:415)
        at com.android.builder.png.AaptProcess$ProcessOutputFacade.err(AaptProcess.java:332)
        at com.android.utils.GrabProcessOutput$1.run(GrabProcessOutput.java:104)


FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:processReleaseResources'.
> Failed to execute aapt

build.gradle:

"apply plugin: "com.android.application"

import com.android.build.OutputFile

project.ext.react = [
    entryFile: "index.js"
]

apply from: "../../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.
 */
def enableSeparateBuildPerCPUArchitecture = false

/**
 * Run Proguard to shrink the Java bytecode in release builds.
 */
def enableProguardInReleaseBuilds = false

android {
    compileSdkVersion 26
    buildToolsVersion "26.0.2"

    defaultConfig {
        applicationId "com.petshop"
        minSdkVersion 16
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        ndk {
            abiFilters "armeabi-v7a", "x86"
        }
    }

    signingConfigs {
        release {
            if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) {
                storeFile file(MYAPP_RELEASE_STORE_FILE)
                storePassword MYAPP_RELEASE_STORE_PASSWORD
                keyAlias MYAPP_RELEASE_KEY_ALIAS
                keyPassword MYAPP_RELEASE_KEY_PASSWORD
            }
        }
    }

    splits {
        abi {
            reset()
            enable enableSeparateBuildPerCPUArchitecture
            universalApk false  // If true, also generate a universal APK
            include "armeabi-v7a", "x86"
        }
    }
    buildTypes {
        release {
            minifyEnabled enableProguardInReleaseBuilds
            proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
            signingConfig signingConfigs.release
        }
    }
    // applicationVariants are e.g. debug, release
    applicationVariants.all { variant ->
        variant.outputs.each { output ->
            // For each separate APK per architecture, set a unique version code as described here:
            // http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits
            def versionCodes = ["armeabi-v7a":1, "x86":2]
            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
            }
        }
    }
}

dependencies {
    compile project(':react-native-device-info')
    compile project(':react-native-camera')
    compile project(':react-native-text-input-mask')
    compile project(':react-native-push-notification')
    compile project(':react-native-image-picker')
    compile project(':react-native-vector-icons')
    compile fileTree(dir: "libs", include: ["*.jar"])
    compile "com.android.support:appcompat-v7:26.0.2"
    compile "com.facebook.react:react-native:+"  // From node_modules
}

// Run this once to be able to run the application with BUCK
// puts all compile dependencies into folder libs for BUCK to use
task copyDownloadableDepsToLibs(type: Copy) {
    from configurations.compile
    into 'libs'
}`

рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ

рдореИрдВрдиреЗ gradle.properties рдлрд╝рд╛рдЗрд▓ рдореЗрдВ android.enableAapt2 = false рд╕реЗрдЯ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдм рдореБрдЭреЗ рдпрд╣ рд▓реЙрдЧ рдкреНрд░рд╛рдкреНрдд рд╣реЛ рд░рд╣рд╛ рд╣реИ:

> Task :react-native-camera:extractReleaseAnnotations
Warning: com.google.android.cameraview.CameraView.Flash: The typedef annotation should have @Retention(RetentionPolicy.SOURCE)

/home/rodrigo/.gradle/caches/transforms-1/files-1.1/appcompat-v7-26.0.2.aar/a8ac6386db44d95bb0127b060ca3ccbc/res/values-v24/values-v24.xml:3:5-157: AAPT: Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Borderless.Colored'.

/home/rodrigo/.gradle/caches/transforms-1/files-1.1/appcompat-v7-26.0.2.aar/a8ac6386db44d95bb0127b060ca3ccbc/res/values-v24/values-v24.xml:4:5-135: AAPT: Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Colored'.

/home/rodrigo/.gradle/caches/transforms-1/files-1.1/appcompat-v7-26.0.2.aar/a8ac6386db44d95bb0127b060ca3ccbc/res/values-v26/values-v26.xml:13:5-16:13: AAPT: No resource found that matches the given name: attr 'android:keyboardNavigationCluster'.

/home/rodrigo/Documentos/React-Native/Projetos-Independentes/PetShop/PetShop/node_modules/react-native-device-info/android/build/intermediates/res/merged/release/values-v24/values-v24.xml:3: error: Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Borderless.Colored'.

/home/rodrigo/Documentos/React-Native/Projetos-Independentes/PetShop/PetShop/node_modules/react-native-device-info/android/build/intermediates/res/merged/release/values-v24/values-v24.xml:4: error: Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Colored'.

/home/rodrigo/Documentos/React-Native/Projetos-Independentes/PetShop/PetShop/node_modules/react-native-device-info/android/build/intermediates/res/merged/release/values-v26/values-v26.xml:15: error: Error: No resource found that matches the given name: attr 'android:keyboardNavigationCluster'.



FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':react-native-device-info:verifyReleaseResources'.
> com.android.ide.common.process.ProcessException: Failed to execute aapt

рдпреЗ рдХреНрдпреЛрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ?

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдПрдкреАрдХреЗ рдЬрдирд░реЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЬреЛ рд▓реЛрдЧ рдРрд╕рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ

react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res

рдпрд╣ рдбреНрд░реЙрдПрдмрд▓ рдлреЛрд▓реНрдбрд░ рдореЗрдВ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдбреНрд░реЙрдмрд▓ рдЗрдореЗрдЬ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рд╣рдЯрд╛ рджреЗрдВ рдФрд░ рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред

android-> app -> src -> main -> res -> drawable

рд╕рднреА 73 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореИрдВ рднреА рдЗрд╕ рдХрджрдо рдХреЗ рд╕рд╛рде рдЗрд╕ рд╕рдЯреАрдХ рдПрдХ рд╣реА рдХрджрдо рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рдореБрджреНрджрд╛ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИред рдореИрдВ рдпрд╣ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдпрд╣ рд░рд┐рд▓реАрдЬ рдмрд┐рд▓реНрдб рдХреЗ рд▓рд┐рдП рдХреНрдпреЛрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдбрд┐рдмрдЧ рдмрд┐рд▓реНрдб рдирд╣реАрдВ рд╣реИред

рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
рдЗрд╕ рдХреЛрдб рдХреЛ _ / android / build.gradle_ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ

subprojects {
  project.configurations.all {
      afterEvaluate {project ->
        if (project.hasProperty("android")) {
            android {
                compileSdkVersion 26
                buildToolsVersion '26.0.2'
            }
        }
    }
     resolutionStrategy.eachDependency { details ->
        if (details.requested.group == 'com.android.support'
              && !details.requested.name.contains('multidex') ) {
           details.useVersion "26.0.2"
        }
     }
  }
}

26.0.2 рд╡рд╣ vs рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ buildToolsVersion рдХреЗ рд▓рд┐рдП _ / android / app / build.gradle_ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ рд╣реИред
рдПрдХ рдЧреЛрд▓реА рджреЗ рджреЛред

@rodrigofbm , рдЖрдк рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ =

* Where:
Build file '/home/felipe/Projects/personal/grioty/android/build.gradle' line: 33

* What went wrong:
A problem occurred configuring project ':app'.
> Android tasks have already been created.
  This happens when calling android.applicationVariants,
  android.libraryVariants or android.testVariants.
  Once these methods are called, it is not possible to
  continue configuring the model.

рдХреНрдпрд╛ рдЖрдк рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХреЛрдб рдХреНрдпрд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ? рд╢рд╛рдпрдж рдореИрдВ рд╕рдордЭ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдореЗрд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред
рдзрдиреНрдпрд╡рд╛рдж!

@FSPinho рдХреЗрд╡рд▓

subprojects {
  project.configurations.all {
      afterEvaluate {project ->
        if (project.hasProperty("android")) {
            android {
                compileSdkVersion 26
                buildToolsVersion '26.0.2'
            }
        }
    }
  }
}

рдзрдиреНрдпрд╡рд╛рдж!
рд▓реЗрдХрд┐рди рдЗрд╕ рджреЛ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рдХрд╛рд░рдг рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдареАрдХ рд╣реЛ рд░рд╣реА рд╣реИрдВред
compileSdkVersion 26
buildToolsVersion '26 .0.2 '

рдХреНрдпрд╛ рдЖрдк рдореБрдЭреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдорд╛рд╣реМрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ?
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЯрд░реНрдорд┐рдирд▓ рдЦреБрд▓рд╛ рд╣реЛрдиреЗ рдХреЗ рд╕рд╛рде: react-native info

Environment:
  OS: macOS High Sierra 10.13.4
  Node: 6.11.3
  Yarn: Not Found
  npm: 6.0.1
  Watchman: 4.9.0
  Xcode: Xcode 9.3.1 Build version 9E501
  Android Studio: 3.0 AI-171.4443003

Packages: (wanted => installed)
  react: 16.0.0 => 16.0.0
  react-native: ^0.55.4 => 0.55.4


рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдиреАрдЪреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ
рдЧрд╛рдж v4.4
classpath 'com.android.toolsред рдирд┐рд░реНрдорд╛рдг: рдврд╛рд▓ : 3.1.1 '
classpath 'com.googleред gms: Google- Services: 3.2.0 '

compileSdkVersion = 27
buildToolsVersion = '27 .0.3 '

рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдб рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛:

subprojects {
  project.configurations.all {
      afterEvaluate {project ->
        if (project.hasProperty("android")) {
            android {
                compileSdkVersion 27
                buildToolsVersion '27.0.3'
            }
        }
    }
  }
}

рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдХреА рдереАред рдЕрднреА рднреА рд╡рд╣реА рддреНрд░реБрдЯрд┐ рдкрд░рд┐рдгрд╛рдоред

рдЧреНрд░реИрдбрд▓ рдХреЗ рд▓рд┐рдП v4.4ред
рдиреНрдпреВрдирддрдо рд╕рдВрдХрд▓рди рд╕рдВрд╕реНрдХрд░рдг 27.0.3 рдпрд╛ 27.1.0 рдореЗрдВ рд╕реЗ рдПрдХ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред

рдпрд╣ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рджреЗрд╢реА-рдХреИрдорд░рд╛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдЬреИрд╕рд╛ рдХреБрдЫ рд╣реИред рд╕рдВрдХрд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирдП рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдФрд░ рдпрд╣рд╛рдБ рдпрд╣ рд╣реИ, рдпрд╣ рд╕рдорд╕реНрдпрд╛ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИред

@kkusanagi рдореБрдЭреЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рджреЗрд╢реА-рдХреИрдорд░рд╛ v1.1.4 рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЗрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛?

рдирдорд╕реНрддреЗ, @ pkhien95 ред рдЗрд╕ рддрд░рд╣ рд╕реЗ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдЕрдм рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рджреЗрд╢реА-рдХреИрдорд░рд╛ v0.10.0 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдЕрднреА рднреА рд╕рдорд╕реНрдпрд╛ рд╣реИред

рд╡рд╛рддрд╛рд╡рд░рдг:
OS: macOS рд╣рд╛рдИ рд╕рд┐рдПрд░рд╛ 10.13.4
рдиреЛрдб: 6.11.3
рдпрд╛рд░реНрди: рдирд╣реАрдВ рдорд┐рд▓рд╛
рдПрдирдкреАрдПрдо: 6.0.1
рдЪреМрдХреАрджрд╛рд░: 4.9.0
Xcode: Xcode 9.3.1 рд╕рдВрд╕реНрдХрд░рдг 9E501 рдмрдирд╛рдПрдБ
Android Studio: 3.0 AI-171.4443003

рдкреИрдХреЗрдЬ: (рд╡рд╛рдВрдЫрд┐рдд => рд╕реНрдерд╛рдкрд┐рдд)
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛: 16.0.0 => 16.0.0
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓: ^ 0.51.1 => 0.51.1
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рджреЗрд╢реА-рдХреИрдорд░рд╛: 0.10.0

Android рдореЗрдВ Android / gradle / рдЖрд╡рд░рдг / gradle-wrapper.properties рдЗрд╕реЗ рдмрджрд▓рддреЗ рд╣реИрдВ
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip

рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Android / gradle.properties рдореЗрдВ рдиреАрдЪреЗ рдЬреЛрдбрд╝реЗрдВ TEMPORARILY рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдбред рд╡рд░реНрд╖ 2019 рд╕реЗ рдкрд╣рд▓реЗ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╣рдЯрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
android.enableAapt2=false

рддрдм рдЖрдкрдХреЛ рдбреНрд░рд╛ рдХрд░рдиреЗ рдпреЛрдЧреНрдп- * рдкреАрдПрдирдЬреА рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдФрд░ рддреНрд░реБрдЯрд┐ рдорд┐рд▓ рд╕рдХрддреА рд╣реИред
рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, goto android / app / src / main / res рдлрд╝реЛрд▓реНрдбрд░ рдФрд░ рд╕рднреА drawable- рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рдХреЗрд╡рд▓ mipmap- * рдФрд░ рдорд╛рдиреЛрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрдВред рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ, рдХреГрдкрдпрд╛ IN CASE рдХреЗ рд▓рд┐рдП рд╣рдЯрд╛рдП рдЧрдП рдлрд╝реЛрд▓реНрдбрд░ рдХрд╛ рдмреИрдХрдЕрдк рд▓реЗрдВред

Android рдореЗрдВ / build.gradle , рдиреАрдЪреЗ рдХреА рддрд░рд╣ рд╕реЗрдЯрд┐рдВрдЧред

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        mavenCentral()
        jcenter()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.0'
        classpath 'com.google.gms:google-services:3.1.2'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

subprojects {
    afterEvaluate {project ->
        if (project.hasProperty("android")) {
            android {
                compileSdkVersion 27     //do this in android/app/build.gradle too
                buildToolsVersion '27.0.3'  //do this in android/app/build.gradle too
            }
        }
    }
}

allprojects {
    repositories {
        mavenLocal()
        jcenter()
        maven {
            // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
            url "$rootDir/../node_modules/react-native/android"
        }
        //maven {
        //    url 'https://maven.google.com'
        //}
        google()
    }
}

@kkusanagi рдзрдиреНрдпрд╡рд╛рджред рдпрд╣ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рджреЗрд╢реА-рдХреИрдорд░рд╛ (1.1.4) рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди рд╣реИ:

subprojects {
    project.configurations.all {
        resolutionStrategy.eachDependency { details ->
            if (details.requested.group == 'com.android.support'
                    && !details.requested.name.contains('multidex') ) {
                details.useVersion "27.1.1"
            }
        }
    }
    afterEvaluate {
        android {
            compileSdkVersion 27
            buildToolsVersion "27.0.3"

            defaultConfig {
                targetSdkVersion 27
            }
        }
    }
}

рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЙрдкрд░реЛрдХреНрдд рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛, рдФрд░ рди рд╣реА рдЖрд╡рд╢реНрдпрдХ рдерд╛ .....

рдирд┐рд░реНрдорд╛рдг рдЙрдкрдХрд░рдг рдореЗрдВ aapt 23 рдПрдХ 32 рдмрд┐рдЯ рдмрд╛рдЗрдирд░реА рд╣реИ ... рдореИрдВ 64 рдмрд┐рдЯ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд╣реВрдВред рдореЗрд░реЗ рдкрд╛рд╕ 32 рдмрд┐рдЯ рдХреЗ рд▓рд┐рдмрд╛рд╕ рд╕рд╣реА рдирд╣реАрдВ рдереЗ рдЗрд╕рд▓рд┐рдП рдпрд╣ рдирд╣реАрдВ рдЪрд▓рд╛ред

Libncurses5 рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛: i386, libstdc ++ 6: i386 рдФрд░ zlib1g: i386 рдиреЗ рдЗрд╕реЗ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ред

@ pkhien95 рдЖрдкрдХрд╛ рд╕рдорд╛рдзрд╛рди рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдореЗрд░рд╛ рджрд┐рди рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

Android / gradle.properties рдореЗрдВ, рдиреАрдЪреЗ рдХреА рддрд░рд╣ рд╕реЗрдЯрд┐рдВрдЧред
android.enableAapt2=false

@ рдореЗрд░реЗ рд▓рд┐рдП рдЕрдкрдирд╛ рд╕рдорд╛рдзрд╛рди рдХрд╛рд░реНрдп рдХрд░реЗрдВред рдЙрд╕рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж

@Scimanyd рдзрдиреНрдпрд╡рд╛рдж рднрд╛рдИ, рдЖрдкрдХреЗ рд╕рдорд╛рдзрд╛рди рдиреЗ рдХрд╛рдо рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИред

@ рдореИрдЯ-рдЧрд╛рдЙрдЯ рдЖрдк рдЬреАрдирд┐рдпрд╕ рд╣реИрдВ, vlws !!! nince

@ рдореИрдЯ-goingout

рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЙрдкрд░реЛрдХреНрдд рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛, рдФрд░ рди рд╣реА рдЖрд╡рд╢реНрдпрдХ рдерд╛ .....

рдирд┐рд░реНрдорд╛рдг рдЙрдкрдХрд░рдг рдореЗрдВ aapt 23 рдПрдХ 32 рдмрд┐рдЯ рдмрд╛рдЗрдирд░реА рд╣реИ ... рдореИрдВ 64 рдмрд┐рдЯ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд╣реВрдВред рдореЗрд░реЗ рдкрд╛рд╕ 32 рдмрд┐рдЯ рдХреЗ рд▓рд┐рдмрд╛рд╕ рд╕рд╣реА рдирд╣реАрдВ рдереЗ рдЗрд╕рд▓рд┐рдП рдпрд╣ рдирд╣реАрдВ рдЪрд▓рд╛ред

Libncurses5 рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛: i386, libstdc ++ 6: i386 рдФрд░ zlib1g: i386 рдиреЗ рдЗрд╕реЗ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ред

рдЗрди рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдХрд╣рд╛рдБ рдФрд░ рдХреИрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП?

@ viv3kk рд╕рд┐рд░реНрдл

@Scimanyd рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ

рдЪреЗрддрд╛рд╡рдиреА: рд╡рд┐рдХрд▓реНрдк 'android.enableAapt2' рдкрджрд╛рд╡рдирдд рд╣реИ рдФрд░ рдЕрдм рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЗрд╕ рдЪреЗрддрд╛рд╡рдиреА рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП 'android.enableAapt2 = true' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдЗрд╕реЗ 2018 рдХреЗ рдЕрдВрдд рдореЗрдВ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд▓рдВрдмреЗ рд╕рдордп рдореЗрдВ рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реЛрдЧрд╛ред

"apt-get install libncurses5: i386 libstdc ++ 6: i386 zlib1g: i386 ubuntu рдореЗрдВ"

рдореИрдХрдУрдПрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреИрд╕реЗ? рдЗрд╕реЗ рдХреИрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ?

@ pkhien95
рдореИрдВ рднреА рдЙрд╕реА рддреНрд░реБрдЯрд┐ рдореЗрдВ рднрд╛рдЧ рд░рд╣рд╛ рд╣реВрдВ, рдЕрдкрдиреЗ рд╕рдорд╛рдзрд╛рди рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдФрд░ рдпрд╣ рддреНрд░реБрдЯрд┐ рдорд┐рд▓реА:

Execution failed for task ':app:preReleaseBuild'.
> Android dependency 'com.android.support:support-v4' has different version for the compile (27.1.0) and runtime (27.1.1) classpath. You should manually set the same version via DependencyResolution

рдЖрдкрдХрд╛ android/build.gradle рдФрд░ android/app/build.gradle рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ?

рд╣реЗ рд▓реЛрдЧреЛрдВред

рдореБрдЭреЗ RN 0.55 рд╕реЗ 0.56 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рднреА рдпрд╣реА рдореБрджреНрджрд╛ рдорд┐рд▓рд╛ рд╣реИ, рддреЛ рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрдкрдиреЗ android/build.gradle рдЬреЛрдбрд╝рд╛, рдФрд░ рдЗрд╕рдиреЗ рдореБрдЭреЗ .apk рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХреА, рд▓реЗрдХрд┐рди рдпрд╣ .apk рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ! рдпрд╣ рдХреЗрд╡рд▓ рд▓реЙрдиреНрдЪ рд╕реНрдХреНрд░реАрди рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ ...
рдХрд┐рд╕реА рдХреЛ рдПрдХ рд╡рд┐рдЪрд╛рд░ рд╣реИ?

subprojects {
    project.configurations.all {
        resolutionStrategy.eachDependency { details ->
            if (details.requested.group == 'com.android.support'
                    && !details.requested.name.contains('multidex') ) {
                details.useVersion "27.1.1"
            }
        }
    }
    afterEvaluate {
        android {
            compileSdkVersion 27
            buildToolsVersion "27.0.3"

            defaultConfig {
                targetSdkVersion 27
            }
        }
    }
}

рдПрдкреАрдХреЗ рдЬрдирд░реЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЬреЛ рд▓реЛрдЧ рдРрд╕рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ

react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res

рдпрд╣ рдбреНрд░реЙрдПрдмрд▓ рдлреЛрд▓реНрдбрд░ рдореЗрдВ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдбреНрд░реЙрдмрд▓ рдЗрдореЗрдЬ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рд╣рдЯрд╛ рджреЗрдВ рдФрд░ рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред

android-> app -> src -> main -> res -> drawable

рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЙрд╕реА рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝ рд░рд╣рд╛ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдереЛрдбрд╝реА рд╕реА рдЦреБрджрд╛рдИ рдФрд░ рд░рд┐рд▓реАрдЬ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдзрд╛рди рд╣реИ:
рдЕрдкрдиреЗ рд░реВрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЕрдкрдиреЗ Android рдбрд╛рдпрд░ рдХреЛ рд╣рдЯрд╛ рджреЗрдВред

рдПрдВрдбреНрд░реЙрдЗрдб рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рджреЗрд╢реА рдЙрдиреНрдирдпрди

рдЕрдм рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рджреНрд╡рд╛рд░рд╛ рд░рд┐рд▓реАрдЬрд╝ APK рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВ

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓ 0.57 рдкрд░ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд╣реИ

android.enableAapt2 = false рдиреЗ рдореЗрд░реА рдорджрдж рдирд╣реАрдВ рдХреАред

рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛, рдЗрд╕реЗ рд╣рд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ: https://github.com/rebeccahughes/react-native-device-info/issues/365#issuecomment -425609406

рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди рдЬреЛ рдореБрдЭреЗ 0.57 рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓рдХ рдХреЗ рд╕рд╛рде рдорджрдж рдХрд░рддрд╛ рд╣реИ

subprojects {
    afterEvaluate {project ->
        if (project.hasProperty("android")) {
            android {
                compileSdkVersion rootProject.ext.compileSdkVersion
                buildToolsVersion rootProject.ext.buildToolsVersion
            }
        }
    }
}

рдпрд╣рд╛рдВ рд╣рд▓ рдХрд░реЗрдВ:

https://github.com/rebeccahughes/react-native-device-info/issues/365#issuecomment -425609406

рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдб рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛:

subprojects {
  project.configurations.all {
      afterEvaluate {project ->
        if (project.hasProperty("android")) {
            android {
                compileSdkVersion 27
                buildToolsVersion '27.0.3'
            }
        }
    }
  }
}

рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛! рдзрдиреНрдпрд╡рд╛рдж рдореЗрд░реЗ рднрд╛рдИ

@rodrigofbm рдзрдиреНрдпрд╡рд╛рдж рджреЛрд╕реНрдд рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛

@antonsivogrivov рдзрдиреНрдпрд╡рд╛рдж рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛

рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдб рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛:

subprojects {
  project.configurations.all {
      afterEvaluate {project ->
        if (project.hasProperty("android")) {
            android {
                compileSdkVersion 27
                buildToolsVersion '27.0.3'
            }
        }
    }
  }
}

рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛! рдзрдиреНрдпрд╡рд╛рдж рдореЗрд░реЗ рднрд╛рдИ

рдЕрдм рдПрдХ рд╣реА рдореБрджреНрджреЗ рдХреЗ рд╕рд╛рде рд╕рдВрдШрд░реНрд╖ рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ ;;

https://github.com/facebook/react-native/issues/19239#issuecomment -425623992
рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ред рд╕рдВрд╕реНрдХрд░рдг 0.57

рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди рдЬреЛ рдореБрдЭреЗ 0.57 рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓рдХ рдХреЗ рд╕рд╛рде рдорджрдж рдХрд░рддрд╛ рд╣реИ

subprojects {
    afterEvaluate {project ->
        if (project.hasProperty("android")) {
            android {
                compileSdkVersion rootProject.ext.compileSdkVersion
                buildToolsVersion rootProject.ext.buildToolsVersion
            }
        }
    }
}

рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ред рд╕рдВрд╕реНрдХрд░рдг 0.57 ЁЯСН

@kkusanagi рдзрдиреНрдпрд╡рд╛рджред рдпрд╣ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рджреЗрд╢реА-рдХреИрдорд░рд╛ (1.1.4) рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди рд╣реИ:

subprojects {
    project.configurations.all {
        resolutionStrategy.eachDependency { details ->
            if (details.requested.group == 'com.android.support'
                    && !details.requested.name.contains('multidex') ) {
                details.useVersion "27.1.1"
            }
        }
    }
    afterEvaluate {
        android {
            compileSdkVersion 27
            buildToolsVersion "27.0.3"

            defaultConfig {
                targetSdkVersion 27
            }
        }
    }
}

рдпрджрд┐ рдХреЛрдИ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓-рдЫрд╡рд┐-рд░рд┐рд╕рд╛рдЗрдЬрд╝рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рдмрдЧ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ, рддреЛ рдпрд╣ рд╕рдорд╛рдзрд╛рди рдЗрд╕реЗ рдареАрдХ рдХрд░рддрд╛ рд╣реИ!

рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛! рд╢реБрдХреНрд░рд┐рдпрд╛ @Scimanyd

рдпрд╣ рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди рд╣реИ ЁЯСН
gradle.properties >>
android.enableAapt2 = false

рдкрд░рд┐рдпреЛрдЬрдирд╛ - >> build.gradle >>
// рд╢реАрд░реНрд╖-рд╕реНрддрд░реАрдп рдмрд┐рд▓реНрдб рдлрд╝рд╛рдЗрд▓ рдЬрд╣рд╛рдВ рдЖрдк рд╕рднреА рдЙрдк-рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ / рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╡рд┐рдХрд▓реНрдк рд╕рд╛рдорд╛рдиреНрдп рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред

рдмрд┐рд▓реНрдбрд╕реНрдХреНрд░рд┐рдкреНрдЯ
рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА {
jcenter ()
рдЧреВрдЧрд▓()
}
рдирд┐рд░реНрднрд░рддрд╛рдПрдБ {
classpath 'com.android.toolsред рдирд┐рд░реНрдорд╛рдг: рдврд╛рд▓ : 3.1.0 '
classpath 'com.googleред gms: рдЧреВрдЧрд▓-рд╕реЗрд╡рд╛рдПрдВ : 3.1.2 '

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}

}

allprojects {
рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА {
mavenLocal ()
jcenter ()
рдЧреВрдЧрд▓()
рдорд╛рд╡реЗрди {
// рд╕рднреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓ рдореВрд▓ рдирд┐рд╡рд╛рд╕реА (рдЬреЗрдПрд╕, рдУрдмрдЬ-рд╕реА рд╕реНрд░реЛрдд, рдПрдВрдбреНрд░реЙрдЗрдб рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝) рдПрдирдкреАрдПрдо рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ
url "$ rootDir /../ node_modules / рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓ / Android"
}
}
}

рдЙрдкрдкреНрд░рдпреЛрдЧ {
project.configurations.all {
resolutionStrategy.each рдирд┐рд░реНрднрд░рддрд╛ {рд╡рд┐рд╡рд░рдг ->
рдЕрдЧрд░ (рд╡рд┐рд╡рд░рдг.requested.group == 'com.android.support'
&&! details.requested.name.contains ('multidex')) {
рд╡рд┐рд╡рд░рдг редuseVersion "26.0.2"
}
}

 afterEvaluate {
         android {
             compileSdkVersion 26
             buildToolsVersion "26.0.2"

             defaultConfig {
                 targetSdkVersion 26
             }
         }
     }

}
}

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓ 0.57 рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рдЙрд╕реА рд╕рдорд╕реНрдпрд╛ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛

android.enableAapt2 = false рдиреЗ рдореЗрд░реА рдорджрдж рдирд╣реАрдВ рдХреАред

рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрд╕реЗ?

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рдерд╛, @rodrigofbm рдХреЗ рд╕рдорд╛рдзрд╛рди рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ред
рдмрд╕ _ .. / android / build.gradle_ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрдд рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬреЛрдбрд╝реЗрдВ

subprojects {
  project.configurations.all {
      afterEvaluate {project ->
        if (project.hasProperty("android")) {
            android {
                compileSdkVersion 26
                buildToolsVersion '26.0.2'
            }
        }
    }
     resolutionStrategy.eachDependency { details ->
        if (details.requested.group == 'com.android.support'
              && !details.requested.name.contains('multidex') ) {
           details.useVersion "26.0.2"
        }
     }
  }
}

рд╣реЗ рд▓реЛрдЧреЛрдВред

рдореБрдЭреЗ RN 0.55 рд╕реЗ 0.56 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рднреА рдпрд╣реА рдореБрджреНрджрд╛ рдорд┐рд▓рд╛ рд╣реИ, рддреЛ рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрдкрдиреЗ android/build.gradle рдЬреЛрдбрд╝рд╛, рдФрд░ рдЗрд╕рдиреЗ рдореБрдЭреЗ .apk рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХреА, рд▓реЗрдХрд┐рди рдпрд╣ .apk рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ! рдпрд╣ рдХреЗрд╡рд▓ рд▓реЙрдиреНрдЪ рд╕реНрдХреНрд░реАрди рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ ...
рдХрд┐рд╕реА рдХреЛ рдПрдХ рд╡рд┐рдЪрд╛рд░ рд╣реИ?

subprojects {
    project.configurations.all {
        resolutionStrategy.eachDependency { details ->
            if (details.requested.group == 'com.android.support'
                    && !details.requested.name.contains('multidex') ) {
                details.useVersion "27.1.1"
            }
        }
    }
    afterEvaluate {
        android {
            compileSdkVersion 27
            buildToolsVersion "27.0.3"

            defaultConfig {
                targetSdkVersion 27
            }
        }
    }
}

рдореИрдВ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ solved рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЗрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рд╣реИ?

рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдб рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛:

subprojects {
  project.configurations.all {
      afterEvaluate {project ->
        if (project.hasProperty("android")) {
            android {
                compileSdkVersion 27
                buildToolsVersion '27.0.3'
            }
        }
    }
  }
}

рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдорд╛рд▓рд┐рдХ рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░реЛ! рд╕рдордп рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж

@antonsivogrivov рдореБрдЭреЗ
рдЙрдкрдкреНрд░рдпреЛрдЧ {
project.configurations.all {
afterEvaluate {рдкреНрд░реЛрдЬреЗрдХреНрдЯ ->
рдЕрдЧрд░ (project.hasProperty ("android")) {
рдПрдВрдбреНрд░реЙрдпрдб {
compileSdkVersion 27
buildToolsVersion '27 .0.3 '
}
}
}
}
}

@ vivek-walecha-657 <ROOT>/android/build.gradle

рдпрджрд┐ рдЖрдк 0.57 ++ рдкрд░ рд╣реИрдВ, рддреЛ рдореИрдВ @antonsivogrivov рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣

рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди рдЬреЛ рдореБрдЭреЗ 0.57 рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓рдХ рдХреЗ рд╕рд╛рде рдорджрдж рдХрд░рддрд╛ рд╣реИ

subprojects {
    afterEvaluate {project ->
        if (project.hasProperty("android")) {
            android {
                compileSdkVersion rootProject.ext.compileSdkVersion
                buildToolsVersion rootProject.ext.buildToolsVersion
            }
        }
    }
}

рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди рдЬреЛ рдореБрдЭреЗ 0.57 рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓рдХ рдХреЗ рд╕рд╛рде рдорджрдж рдХрд░рддрд╛ рд╣реИ

subprojects {
    afterEvaluate {project ->
        if (project.hasProperty("android")) {
            android {
                compileSdkVersion rootProject.ext.compileSdkVersion
                buildToolsVersion rootProject.ext.buildToolsVersion
            }
        }
    }
}

рдЖрдкрдиреЗ рдореЗрд░рд╛ рджрд┐рди рдмрдЪрд╛рдпрд╛ред рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред

рдпрд╣рд╛рдБ рдореЗрд░реА рдирдореВрдирд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ bulid.gradle, package.json рдХреЗ рд╕рд╛рде рдореЗрд░реА

https://gist.github.com/Abhishekgarg727/daf031fb9f94fdfd985e84db57dedbe1

рдЗрд╕ рдЯрд┐рдкреНрдкрдгреА рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛!

@kkusanagi рдзрдиреНрдпрд╡рд╛рджред рдпрд╣ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рджреЗрд╢реА-рдХреИрдорд░рд╛ (1.1.4) рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди рд╣реИ:

subprojects {
    project.configurations.all {
        resolutionStrategy.eachDependency { details ->
            if (details.requested.group == 'com.android.support'
                    && !details.requested.name.contains('multidex') ) {
                details.useVersion "27.1.1"
            }
        }
    }
    afterEvaluate {
        android {
            compileSdkVersion 27
            buildToolsVersion "27.0.3"

            defaultConfig {
                targetSdkVersion 27
            }
        }
    }
}

рдзрдиреНрдпрд╡рд╛рдж @ pkhien95 , рдЖрдкрдиреЗ рдореЗрд░реА рд░рд╛рдд рдмрдЪрд╛рдИред ЁЯЩП

рдирдорд╕реНрддреЗ рд╡рд╣рд╛рдБ there рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореВрд▓ рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рд╕реВрдЪрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╕рднреА рд▓реЛрдЧ 0.59 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ (рдЗрд╕реЗ рд▓рд╛рдП рдЧрдП рднрдпрд╛рдирдХ рдмрджрд▓рд╛рд╡ рджреЗрдЦреЗрдВ) рд▓реЗрдХрд┐рди рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЕрджреНрдпрддрди рдХрд░рдирд╛ рдПрдХ рджрд░реНрдж рд╣реЛ рд╕рдХрддрд╛ рд╣реИред 0.59 рдЕрдкрдбреЗрдЯ рдХреЗ рджреМрд░рд╛рди, рдПрдВрдбреНрд░реЙрдЗрдб рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдХреБрдЫ рдмрджрд▓рд╛рд╡ рдХрд┐рдП рдЧрдП рдереЗ, рдЬреИрд╕реЗ рдХрдВрдкрд╛рдЗрд▓рд╕реНрдХрдб рд╡рд░реНрдЬрди рдФрд░ рдЕрдиреНрдп рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдореИрдВ рдЕрдм рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░ рджреВрдВрдЧрд╛ред

рд▓реЗрдХрд┐рди рдХреГрдкрдпрд╛, рдЕрдЧрд░ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрднреА рднреА 0.59 рдХреЗ рд╕рд╛рде рдПрдХ рдореБрджреНрджрд╛ рд╣реИ рддреЛ рдХреГрдкрдпрд╛ рдиреАрдЪреЗ рдЯрд┐рдкреНрдкрдгреА рдХрд░реЗрдВ рдФрд░ рд╣рдо рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рд╕реЗ рднреА рдмреЗрд╣рддрд░, рдХреГрдкрдпрд╛ рд╣рдореЗрдВ рдПрдХ рдлрд┐рдХреНрд╕ a рдХреЗ рд╕рд╛рде рдкреБрд▓ рдЕрдиреБрд░реЛрдз рднреЗрдЬреЗрдВ

@rodrigofbm

React Native Environment Info:
    System:
      OS: macOS 10.14.1
      CPU: (4) x64 Intel(R) Core(TM) i5-5350U CPU @ 1.80GHz
      Memory: 36.67 MB / 8.00 GB
      Shell: 5.3 - /bin/zsh
    Binaries:
      Node: 8.11.3 - /usr/local/bin/node
      npm: 6.4.1 - /usr/local/bin/npm
      Watchman: 4.9.4 - /usr/local/bin/watchman
    SDKs:
      Android SDK:
        API Levels: 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28
        Build Tools: 26.0.1, 26.0.2, 27.0.0, 27.0.3, 28.0.3
    IDEs:
      Android Studio: 3.3 AI-182.5107.16.33.5264788
      Xcode: /undefined - /usr/bin/xcodebuild
    npmPackages:
      react: 16.6.3 => 16.6.3 
      react-native: 0.58.4 => 0.58.4 
    npmGlobalPackages:
      create-react-native-app: 2.0.2
      react-native-cli: 2.0.1
      react-native-vector-icons: 6.0.2

рдФрд░ рдореИрдВ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ

рдереНрд░реЗрдб рдореЗрдВ рдЕрдкрд╡рд╛рдж "ForkJoinPool.commonPool-worker-6" java.lang.IllegalStateException: AAPT рдкреНрд░реЛрд╕реЗрд╕ рдореИрдиреЗрдЬрд░ рдХреЛ рдмрдВрдж рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрдмрдХрд┐ рдбреЗрдореЙрди рдЙрдкрдпреЛрдЧ рдореЗрдВ рд╣реИрдВ
com.android.builder.internal.aapt.v2.Aapt2DaemonManager.shutdown (Aapt2DaemonManager.kt: 96) рдкрд░
com.android.build.gradle.internal.res.namespaced.RegisteredAaptService.shutdown (Aapt2DaemonManagerService.kt: 61) рдкрд░
com.android.build.gradle.internal.workeractions.WorkerActionServiceRegistry $ shutdownAllRegisteredServices $ 1 $ 1.run (WorkerActionServiceRegistry.kt): 96
java.util.concurrent.ForkJoinTask рдкрд░ $ RunnableExecuteAction.exec (ForkJoinTask.java:1402)
java.util.concurrent.ForkJoinTask.doExec (ForkJoinTask.java :289 рдкрд░)
java.util.concurrent.ForkJoinPool $ WorkQueue.runTask (ForkJoinPool.java:1056) рдкрд░
java.util.concurrent.ForkJoinPool.runWorker (ForkJoinPool.java:1692) рдкрд░
java.util.concurrent.ForkJoinWorkerThread.run (ForkJoinWorkerThread.java:157) рдкрд░
рддреНрд░реБрдЯрд┐ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдВрд╕реНрдЯреЙрд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛, рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдЙрдкрд░реЛрдХреНрдд рддреНрд░реБрдЯрд┐ рдкрдврд╝реЗрдВред
рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдПрдВрдбреНрд░реЙрдЗрдб рдПрдореБрд▓реЗрдЯрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИ рдпрд╛ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ рдФрд░ рд╣реИ

рдирдорд╕реНрддреЗ рд╡рд╣рд╛рдБ there рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореВрд▓ рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рд╕реВрдЪрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╕рднреА рд▓реЛрдЧ 0.59 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ (рдЗрд╕реЗ рд▓рд╛рдП рдЧрдП рднрдпрд╛рдирдХ рдмрджрд▓рд╛рд╡ рджреЗрдЦреЗрдВ) рд▓реЗрдХрд┐рди рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЕрджреНрдпрддрди рдХрд░рдирд╛ рдПрдХ рджрд░реНрдж рд╣реЛ рд╕рдХрддрд╛ рд╣реИред 0.59 рдЕрдкрдбреЗрдЯ рдХреЗ рджреМрд░рд╛рди, рдПрдВрдбреНрд░реЙрдЗрдб рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдХреБрдЫ рдмрджрд▓рд╛рд╡ рдХрд┐рдП рдЧрдП рдереЗ, рдЬреИрд╕реЗ рдХрдВрдкрд╛рдЗрд▓рд╕реНрдХрдб рд╡рд░реНрдЬрди рдФрд░ рдЕрдиреНрдп рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдореИрдВ рдЕрдм рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░ рджреВрдВрдЧрд╛ред

рд▓реЗрдХрд┐рди рдХреГрдкрдпрд╛, рдЕрдЧрд░ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрднреА рднреА 0.59 рдХреЗ рд╕рд╛рде рдПрдХ рдореБрджреНрджрд╛ рд╣реИ рддреЛ рдХреГрдкрдпрд╛ рдиреАрдЪреЗ рдЯрд┐рдкреНрдкрдгреА рдХрд░реЗрдВ рдФрд░ рд╣рдо рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рд╕реЗ рднреА рдмреЗрд╣рддрд░, рдХреГрдкрдпрд╛ рд╣рдореЗрдВ рдПрдХ рдлрд┐рдХреНрд╕ a рдХреЗ рд╕рд╛рде рдкреБрд▓ рдЕрдиреБрд░реЛрдз рднреЗрдЬреЗрдВ

рдПрдХ рд╣реА рдореБрджреНрджрд╛ рдпрд╣рд╛рдБ

"react": "16.8.3",
"react-native": "0.59.3",
"react-native-appodeal": "^2.1.5",

рдпрд╣ рдЕрднреА рднреА рд╣реЛ рд░рд╣рд╛ рд╣реИ рдФрд░ рдпрд╣рд╛рдВ рдПрдХ рдореБрджреНрджрд╛ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ рдЬреЛ рдЦреБрд▓рд╛ рд╣реИ: https://github.com/facebook/react-native/issues/22234

FWIW, <root>/android/build.gradle рдореЗрдВ рдпрд╣ рдмрд┐рдЯ рд░рд╣рд╛ рд╣реИ:

subprojects { project -> 
  afterEvaluate {
        if((project.plugins.hasPlugin('android') || project.plugins.hasPlugin('android-library'))) {
            android {
                compileSdkVersion rootProject.ext.compileSdkVersion
                buildToolsVersion rootProject.ext.buildToolsVersion
            }
        }
    }
}

рдФрд░ рдЗрд╕ рдмрд┐рдЯ <root>/android/app/build.gradle :

subprojects {
    project.configurations.all {
        afterEvaluate {project ->
            if (project.hasProperty("android")) {
                android {
                    compileSdkVersion rootProject.ext.compileSdkVersion
                    buildToolsVersion rootProject.ext.buildToolsVersion
                }
            }
        }
        resolutionStrategy.eachDependency { details ->
            if (details.requested.group == 'com.android.support'
                    && !details.requested.name.contains('multidex') ) {
                details.useVersion rootProject.ext.buildToolsVersion
            }
        }
    }
}

рдХреНрдпрд╛ рдЪрд╛рд▓ рд╣реИред

рдореИрдВрдиреЗ рдЗрд╕ рдХрдорд╛рдВрдб ./gradlew app:assembleRelease рд╕рд╛рде рдЕрдкрдирд╛ рдореБрджреНрджрд╛ рд╣рд▓ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ

рдпрджрд┐ рдЖрдк рдСрдлрд╝рд▓рд╛рдЗрди рдХреЗ рд▓рд┐рдП рдмрд╕ рдбрд┐рдмрдЧ рдПрдкреАрдХреЗ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдЗрд╕ рдХрдорд╛рдВрдб рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ
./gradlew

рд╕рд░рд▓ рдЖрдкрдХреЛ рдпрд╣ рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ

FWIW, <root>/android/build.gradle рдореЗрдВ рдпрд╣ рдмрд┐рдЯ рд░рд╣рд╛ рд╣реИ:

subprojects { project -> 
  afterEvaluate {
        if((project.plugins.hasPlugin('android') || project.plugins.hasPlugin('android-library'))) {
            android {
                compileSdkVersion rootProject.ext.compileSdkVersion
                buildToolsVersion rootProject.ext.buildToolsVersion
            }
        }
    }
}

рдФрд░ рдЗрд╕ рдмрд┐рдЯ <root>/android/app/build.gradle :

subprojects {
    project.configurations.all {
        afterEvaluate {project ->
            if (project.hasProperty("android")) {
                android {
                    compileSdkVersion rootProject.ext.compileSdkVersion
                    buildToolsVersion rootProject.ext.buildToolsVersion
                }
            }
        }
        resolutionStrategy.eachDependency { details ->
            if (details.requested.group == 'com.android.support'
                    && !details.requested.name.contains('multidex') ) {
                details.useVersion rootProject.ext.buildToolsVersion
            }
        }
    }
}

рдХреНрдпрд╛ рдЪрд╛рд▓ рд╣реИред

рдЗрд╕рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ рдФрд░ рд╕рд╛рде рд╣реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛[email protected]

рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
рдЗрд╕ рдХреЛрдб рдХреЛ _ / android / build.gradle_ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ

subprojects {
  project.configurations.all {
      afterEvaluate {project ->
        if (project.hasProperty("android")) {
            android {
                compileSdkVersion 26
                buildToolsVersion '26.0.2'
            }
        }
    }
     resolutionStrategy.eachDependency { details ->
        if (details.requested.group == 'com.android.support'
              && !details.requested.name.contains('multidex') ) {
           details.useVersion "26.0.2"
        }
     }
  }
}

26.0.2 рд╡рд╣ vs рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ buildToolsVersion рдХреЗ рд▓рд┐рдП _ / android / app / build.gradle_ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ рд╣реИред
рдПрдХ рдЧреЛрд▓реА рджреЗ рджреЛред

рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ

@ рдлрд╛рдЗрд▓ рдХреЗ рдЕрдВрджрд░ bit рдХрд╣рд╛рдБ рд░рдЦреЗрдВ?
<root>/android/build.gradle
<root>/android/app/build.gradle
рдЖрдк рдПрдХ рдирдореВрдирд╛ рдкреЗрд╕реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, thx

/android/build.gradle
рдХреЛрдб рдХрд╛ рдПрдХ bellow

FWIW, <root>/android/build.gradle рдореЗрдВ рдпрд╣ рдмрд┐рдЯ рд░рд╣рд╛ рд╣реИ:

subprojects { project -> 
  afterEvaluate {
        if((project.plugins.hasPlugin('android') || project.plugins.hasPlugin('android-library'))) {
            android {
                compileSdkVersion rootProject.ext.compileSdkVersion
                buildToolsVersion rootProject.ext.buildToolsVersion
            }
        }
    }
}

рдФрд░ рдЗрд╕ рдмрд┐рдЯ <root>/android/app/build.gradle :

subprojects {
    project.configurations.all {
        afterEvaluate {project ->
            if (project.hasProperty("android")) {
                android {
                    compileSdkVersion rootProject.ext.compileSdkVersion
                    buildToolsVersion rootProject.ext.buildToolsVersion
                }
            }
        }
        resolutionStrategy.eachDependency { details ->
            if (details.requested.group == 'com.android.support'
                    && !details.requested.name.contains('multidex') ) {
                details.useVersion rootProject.ext.buildToolsVersion
            }
        }
    }
}

рдХреНрдпрд╛ рдЪрд╛рд▓ рд╣реИред

рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж рдпрд╣ рдЕрдм 0.59.1 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ, рдореИрдВ рдкрд┐рдЫрд▓реЗ 3 рджрд┐рдиреЛрдВ рд╕реЗ рд╕рдВрдШрд░реНрд╖ рдХрд░ рд░рд╣рд╛ рдерд╛ рдХрднреА-рдХрднреА рдореИрдВ рдореВрд▓ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕реЗ рдирдлрд░рдд рдХрд░рддрд╛ рд╣реВрдВ рдореИрдВрдиреЗ рджреЗрд╢реА рд╡рд┐рдХрд╛рд╕ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЛрдЪрд╛ рдерд╛ рд▓реЗрдХрд┐рди рдЖрдк рдЬреИрд╕реЗ рд▓реЛрдЧ рд╣рдореЗрд╢рд╛ рдореЗрд░реЗ рджрд┐рдорд╛рдЧ рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВ :-)

рдореЗрд░реЗ рд▓рд┐рдП рджреЗрд╢реА 0.59.0 рдкрд░ рдХреБрдЫ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ

рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВрдиреЗ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рдирд╕реНрдЯреНрд░реЗрд╕реА рдмреНрд▓реЙрдХ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬреЛ рдореИрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛ ...

рдореЗрд░рд╛ android / build.gradle рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

buildscript {
    subprojects { project -> 
    afterEvaluate {
            if((project.plugins.hasPlugin('android') || project.plugins.hasPlugin('android-library'))) {
                android {
                    compileSdkVersion rootProject.ext.compileSdkVersion
                    buildToolsVersion rootProject.ext.buildToolsVersion
                }
            }
        }
    }

ext {
    buildToolsVersion = "28.0.3"
    minSdkVersion = 16
    compileSdkVersion = 28
    targetSdkVersion = 27
    supportLibVersion = "28.0.0"
}
    repositories {
        jcenter()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.4.1'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        mavenLocal()
        jcenter()
        maven {
            // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
            url "$rootDir/../node_modules/react-native/android"
        }
    }
}


wrapper {
    gradleVersion = '4.4'
    distributionUrl = distributionUrl.replace("bin", "all")
}

рдФрд░ рдореЗрд░реЗ android / app / build.gradle рдЗрд╕ рддрд░рд╣ рд╣реИрдВ:

android {
    compileSdkVersion rootProject.ext.compileSdkVersion
    buildToolsVersion rootProject.ext.buildToolsVersion

    defaultConfig {
        applicationId "com.modularapp"
        minSdkVersion rootProject.ext.minSdkVersion
        targetSdkVersion rootProject.ext.targetSdkVersion
        versionCode 1
        versionName "1.0"

        ndk {
            abiFilters "armeabi-v7a", "x86"
        }

        packagingOptions {
            exclude "lib/arm64-v8a/librealm-jni.so"
        }
    }

    signingConfigs {
        release {
            storeFile file(MYAPP_RELEASE_STORE_FILE)
            storePassword MYAPP_RELEASE_STORE_PASSWORD
            keyAlias MYAPP_RELEASE_KEY_ALIAS
            keyPassword MYAPP_RELEASE_KEY_PASSWORD
        }
    }

    splits {
        abi {
            reset()
            enable enableSeparateBuildPerCPUArchitecture
            universalApk false  // If true, also generate a universal APK
        }
    }
    buildTypes {
        release {
            signingConfig signingConfigs.release
            minifyEnabled enableProguardInReleaseBuilds
            proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
        }
    }
    // applicationVariants are e.g. debug, release
    applicationVariants.all { variant ->
        variant.outputs.each { output ->
            // For each separate APK per architecture, set a unique version code as described here:
            // http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits

            def versionCodes = ["armeabi-v7a":1, "x86":2]
            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
            }
        }
    }
}

dependencies {
    compile project(':react-native-voice')
    compile project(':react-native-tts')
    compile project(':react-native-vector-icons')
    compile project(':react-native-gesture-handler')
    compile project(':react-native-cookies')
    compile project(':react-native-webview')
    implementation fileTree(dir: "libs", include: ["*.jar"])
    implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
    implementation "com.facebook.react:react-native:+"  // From node_modules
}

@ pkhien95 рдзрдиреНрдпрд╡рд╛рдж рдЖрдкрдХреЗ рд╕рдорд╛рдзрд╛рди рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛, рдзрдиреНрдпрд╡рд╛рдж

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓ рдкрд░реНрдпрд╛рд╡рд░рдг рд╕рдВрдмрдВрдзреА рдЬрд╛рдирдХрд╛рд░реА:
рд╕рд┐рд╕реНрдЯрдо:
OS: macOS 10.14.4
рдмрд╛рдЗрдирд░реА:
рдиреЛрдб: 10.15.3
рд╕реВрдд: 1.15.2
рдПрдирдкреАрдПрдо: 6.4.1
рдЪреМрдХреАрджрд╛рд░: 4.9.0
SDKs:
iOS SDK:
рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо: iOS 12.2, macOS 10.14, tvOS 12.2, watchOS 5.2
Android SDK:
рдПрдкреАрдЖрдИ рд╕реНрддрд░: 23, 25, 28, 29
рдмрд┐рд▓реНрдб рдЯреВрд▓реНрд╕: 28.0.3, 29.0.2
рд╕рд┐рд╕реНрдЯрдо рдЫрд╡рд┐рдпрд╛рдБ: Android-28 | Google API рдЗрдВрдЯреЗрд▓ x86 рдПрдЯрдо
IDEs:
Android Studio: 3.5 AI-191.8026.42.35.5791312
Xcode: 10.2.1 / 10E1001
npmPackages:
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛: 16.8.3 => 16.8.3
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓: ^ 0.59.8 => 0.59.8
npmGlobalPackages:
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓-рдХреНрд▓рд┐: 2.0.1

рдпрджрд┐ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдЕрднреА рднреА рд╕рдорд╕реНрдпрд╛ рд╣реИ, рддреЛ рд╡реЗ рдЕрдиреБрд╕рд░рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
https://github.com/christopherdro/react-native-html-to-pdf/issues/98

рд╢реНрд░реЗрд╖реНрда

./gradlew app:assembleRelease

рдЖрд░рдПрди 0.61.2 рд╕рд╛рде рдЗрд╕рд╕реЗ рдкреАрдбрд╝рд┐рддред

react-native bundle рдмрд╛рдж рдЗрд╕рдХреЗ рд╕рд╛рде рдлрд┐рдХреНрд╕реНрдб:

git clean -df android/app/src/main/res/

рдореИрдВрдиреЗ рдЗрд╕ рдХрдорд╛рдВрдб ./gradlew app:assembleRelease рд╕рд╛рде рдЕрдкрдирд╛ рдореБрджреНрджрд╛ рд╣рд▓ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ

рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ред рдзрдиреНрдпрд╡рд╛рдж

Android / gradle.properties рдореЗрдВ, рдиреАрдЪреЗ рдХреА рддрд░рд╣ рд╕реЗрдЯрд┐рдВрдЧред
android.enableAapt2=false

рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж, рдореЗрд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА!

./gradlew app:assembleRelease

рдЖрдЦрд┐рд░рдХрд╛рд░ рдХреБрдЫ рдХрд╛рдо рд╣реБрдЖред
рдореИрдВ рдкрд┐рдЫрд▓реЗ 24 рдШрдВрдЯреЛрдВ рд╕реЗ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЬрдм рддрдХ рдореБрдЭреЗ рдпрд╣ рдирд╣реАрдВ рдорд┐рд▓рд╛ рддрдм рддрдХ рдХреБрдЫ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рдерд╛ред
рдзрдиреНрдпрд╡рд╛рдж рджреЛрд╕реНрдд

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓-рдорд┐рд╢реНрд░рд┐рдд-рдкреНрд░рдмрдВрдзрдХ (6.5.1) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдореБрдЭреЗ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред
@kkusanagi рдзрдиреНрдпрд╡рд╛рджред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди рд╣реИред

subprojects {
    afterEvaluate {project ->
        if (project.hasProperty("android")){
            android {
                compileSdkVersion 28
                buildToolsVersion '28.0.3'
            }
        }
    }
}

рдореИрдВ рдкрд┐рдЫрд▓реЗ рддреАрди рджрд┐рдиреЛрдВ рд╕реЗ рдЗрд╕рдореЗрдВ рдлрдВрд╕рд╛ рд╣реБрдЖ рдерд╛ред рдЕрдВрдд рдореЗрдВ, рдореИрдВ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред
рдпрд╣ рдЖрдкрдХреЗ \ yourProject \ android \ app \ src \ main \ res \ рдореЗрдВ рдЙрддреНрдкрдиреНрди рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рдХрд╛рд░рдг рдерд╛
рдмрд╕ рдпрд╣рд╛рдВ рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреБрдЫ рдЕрд╡рд╛рдВрдЫрд┐рдд рдлрд╛рдЗрд▓реЗрдВ рдмрдирд╛рдИ рдЬрд╛рдПрдВрдЧреАред рдЙрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдореМрдЬреВрдж рдХреБрдЫ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдФрд░ рдЗрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдХрдЪреНрдЪреЗ рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рд╣рдЯрд╛ рджреЗрдВред рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИрдВ

рдзрдиреНрдпрд╡рд╛рдж

./gradlew app:assembleRelease

ty рднрд╛рдИ рдореИрдВрдиреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░ рджрд┐рдпрд╛ рд╣реИ

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

anchetaWern picture anchetaWern  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

axelg12 picture axelg12  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

grabbou picture grabbou  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

josev55 picture josev55  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

WG-Com picture WG-Com  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ