рд╣рдо рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд░рд┐рдПрдХреНрдЯ рдиреЗрдЯрд┐рд╡ рдореЗрдВ рдмрдЧреНрд╕ рдкрд░ рдирдЬрд╝рд░ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП 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
рдпреЗ рдХреНрдпреЛрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ?
рдореИрдВ рднреА рдЗрд╕ рдХрджрдо рдХреЗ рд╕рд╛рде рдЗрд╕ рд╕рдЯреАрдХ рдПрдХ рд╣реА рдХрджрдо рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рдореБрджреНрджрд╛ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИред рдореИрдВ рдпрд╣ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдпрд╣ рд░рд┐рд▓реАрдЬ рдмрд┐рд▓реНрдб рдХреЗ рд▓рд┐рдП рдХреНрдпреЛрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдбрд┐рдмрдЧ рдмрд┐рд▓реНрдб рдирд╣реАрдВ рд╣реИред
рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
рдЗрд╕ рдХреЛрдб рдХреЛ _ / 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
рдХреЛрдб рдХрд╛ рдПрдХ 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 рднрд╛рдИ рдореИрдВрдиреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░ рджрд┐рдпрд╛ рд╣реИ
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдПрдкреАрдХреЗ рдЬрдирд░реЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЬреЛ рд▓реЛрдЧ рдРрд╕рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ
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