1
resposta

Problemas para rodar React Native App no Celular

O aplicativo roda normalmente no emulador, mas ao tentar abrir no celular recebo o seguinte erro:

Task :app:installDebug FAILED

Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0.

You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.

See https://docs.gradle.org/7.3.3/userguide/command_line_interface.html#sec:command_line_warnings
112 actionable tasks: 2 executed, 110 up-to-date
[Device]: Error during Sync: EOF

-------------------- Meu build.gradle --------------------

import org.apache.tools.ant.taskdefs.condition.Os

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

buildscript {
    ext {
        buildToolsVersion = "31.0.0"
        minSdkVersion = 21
        compileSdkVersion = 31
        targetSdkVersion = 31

        if (System.properties['os.arch'] == "aarch64") {
            // For M1 Users we need to use the NDK 24 which added support for aarch64
            ndkVersion = "24.0.8215888"
        } else {
            // Otherwise we default to the side-by-side NDK version from AGP.
            ndkVersion = "21.4.7075529"
        }
    }
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath("com.android.tools.build:gradle:7.1.1")
        classpath("com.facebook.react:react-native-gradle-plugin")
        classpath("de.undercouch:gradle-download-task:5.0.1")
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        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")
        }
        mavenCentral {
            // We don't want to fetch react-native from Maven Central as there are
            // older versions over there.
            content {
                excludeGroup "com.facebook.react"
            }
        }
        google()
        maven { url 'https://www.jitpack.io' }
    }
}
1 resposta

Olá, Gabriel!

O erro que você está enfrentando ao tentar rodar o aplicativo React Native no celular está relacionado a uma incompatibilidade com a versão do Gradle. O aviso indica que foram usadas funcionalidades do Gradle que estão obsoletas e não são compatíveis com a versão 8.0.

Uma solução para esse problema é atualizar a versão do Gradle no seu projeto. No seu arquivo build.gradle, você está usando a versão 7.1.1 do Gradle. Você pode tentar atualizá-la para a versão mais recente, que é a 7.3.3, e ver se o erro persiste.

Altere a linha classpath("com.android.tools.build:gradle:7.1.1") para classpath("com.android.tools.build:gradle:7.3.3").

Depois de fazer essa alteração, sincronize o projeto novamente e tente rodar o aplicativo no celular. Verifique se o erro desapareceu.

Caso o erro persista ou surjam outros problemas, pode ser necessário verificar outras possíveis causas, como a versão do Android SDK e as dependências do projeto. Mas comece pela atualização do Gradle e veja se resolve.

Espero ter ajudado e bons estudos!