# #android #firebase #react-native #android-studio
Вопрос:
Это очень досадная ошибка. Когда я запускаю приложение с помощью react-native run-android, оно иногда выходит из строя с ошибкой:
* What went wrong: Execution failed for task ':app:processDebugGoogleServices'. gt; Failed to delete: C:......androidappbuildgeneratedresgoogle-servicesdebug
И иногда ошибка превращается в:
* What went wrong: Execution failed for task ':app:processDebugGoogleServices'. gt; Failed to delete: C:......androidappbuildgeneratedresgoogle-servicesdebug
Когда я удаляю карту сборки с карты Android/приложения, она работает. Если я сделаю чистку в классе, это тоже сработает. Если я пару раз запущу react-native run-android, это тоже сработает.
Но мне нужно повторять эти действия снова и снова
Я также запускал cmd от имени администратора, потому что думал, что это связано с отсутствием разрешения на удаление файла, это также не сработало.
Кто-нибудь исправил эту ошибку, это мой gradle.build:
buildscript { ext { buildToolsVersion = "30.0.3" minSdkVersion = 18 compileSdkVersion = 30 targetSdkVersion = 30 supportLibVersion = "28.0.0" } repositories { google() jcenter() } dependencies { classpath('com.android.tools.build:gradle:3.4.2') classpath('com.google.gms:google-services:4.2.0') // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { mavenLocal() maven { // Out local maven repo url("http://192.168.96.134:8888/repository/maven-central/") } maven { // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm url("$rootDir/../node_modules/react-native/android") } maven { // Android JSC is installed from npm url("$rootDir/../node_modules/jsc-android/dist") } maven { // All of Detox' artifacts are provided via the npm module url "$rootDir/../node_modules/detox/Detox-android" } google() jcenter() } }
Моя сборка приложения gradle:
apply plugin: "com.android.application" import com.android.build.OutputFile import java.text.SimpleDateFormat import groovy.json.JsonSlurper project.ext.react = [ entryFile: "index.js", enableHermes: false, ] apply from: "../../node_modules/react-native/react.gradle" def enableSeparateBuildPerCPUArchitecture = false def enableProguardInReleaseBuilds = false def jscFlavor = 'org.webkit:android-jsc: ' def enableHermes = project.ext.react.get("enableHermes", false); def getVersionNameFromPackageJson() { def packageSlurper = new JsonSlurper() def packageJson = packageSlurper.parse file('../../package.json') return packageJson.version } def getVersionCodeFromPackageJson() { version = getVersionNameFromPackageJson() // Removing possible prepatch version def versionWithoutPrePatch = version.split("-")[0] // Split version to retrieve major, minor and patch versions String[] versions = versionWithoutPrePatch.tokenize("\.") // Calculate build code based on version name return (versions[0].toInteger() * 10000 versions[1].toInteger() * 100 versions[2].toInteger()) } android { compileSdkVersion rootProject.ext.compileSdkVersion compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } defaultConfig { applicationId "------" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion versionCode getVersionCodeFromPackageJson() versionName getVersionNameFromPackageJson() archivesBaseName = "name-v$versionName" testBuildType System.getProperty('testBuildType', 'debug') testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner' multiDexEnabled true } splits { abi { reset() enable enableSeparateBuildPerCPUArchitecture universalApk false include "armeabi-v7a", "x86", "arm64-v8a", "x86_64" } } signingConfigs { debug { storeFile file('') storePassword '' keyAlias '' keyPassword '' } release { storeFile file('') storePassword '' keyAlias '' keyPassword '' } } buildTypes { debug { signingConfig signingConfigs.debug } release { signingConfig signingConfigs.release } } // applicationVariants are e.g. debug, release applicationVariants.all { variant -gt; variant.outputs.each { output -gt; def dateTimeString = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) output.outputFileName = output.outputFile.name.replace(".apk", "-${dateTimeString}.apk") } } packagingOptions { pickFirst '**/armeabi-v7a/libc _shared.so' pickFirst '**/x86/libc _shared.so' pickFirst '**/arm64-v8a/libc _shared.so' pickFirst '**/x86_64/libc _shared.so' pickFirst '**/x86/libjsc.so' pickFirst '**/armeabi-v7a/libjsc.so' } } dependencies { implementation fileTree(dir: "libs", include: ["*.jar"]) implementation "com.facebook.react:react-native: " // From node_modules implementation 'androidx.legacy:legacy-support-v4:1.0.0' androidTestImplementation('com.wix:detox: ') implementation 'com.android.support:multidex:1.0.3' //with support libraries implementation 'com.google.firebase:firebase-messaging:21.1.0' if (enableHermes) { def hermesPath = "../../node_modules/hermesvm/android/"; debugImplementation files(hermesPath "hermes-debug.aar") releaseImplementation files(hermesPath "hermes-release.aar") } else { implementation jscFlavor } } // Run this once to be able to run the application with BUCK // puts all compile dependencies into folder libs for BUCK to use task copyDownloadableDepsToLibs(type: Copy) { from configurations.compile into 'libs' } ext { buildToolsVersion = "30.0.3" minSdkVersion = 18 compileSdkVersion = 30 targetSdkVersion = 30 supportLibVersion = "28.0.0" googlePlayServicesVersion = "18.1.0" firebaseVersion = "21.1.0" } apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project) apply from: file("../../node_modules/react-native-vector-icons/fonts.gradle") apply plugin: 'com.google.gms.google-services'
Есть ли какое-то решение?