Solucionado (ver solução)
Solucionado
(ver solução)
8
respostas

erro durante execucao do comando react-native run-android

Scanning folders for symlinks in D:\react-native\InstaluraMobile\node_modules (43ms)
JS server already running.
Building and installing the app on the device (cd android && gradlew.bat installDebug)...

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring project ':app'.
> Could not resolve all dependencies for configuration ':app:_debugApk'.
   > Configuration with name 'default' not found.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 11.339 secs
Could not install the app on the device, read the error above for details.
Make sure you have an Android emulator running or a device connected and have
set up your Android development environment:
https://facebook.github.io/react-native/docs/getting-started.html

Como resolver?

8 respostas

Fala Leonildo, tudo bem ?

Make sure you have an Android emulator running or a device connected -> Você se certificou de subir o emulador do Android antes de rodar o comando no terminal ?

Quando testamos no iOS não é preciso subir o simulator porque automaticamente ele sobe, mas ao testar no Android precisa lembrar de subir o emulador antes, seja pelo Android Studio ou mesmo pelo terminal.

Dê uma olhada nisso...

Sim, esta iniciado. Veja na imagem: http://prntscr.com/kfvcos

Isso aconteceu depois que fiz os ajustes para utilizar a lib react-native-navigation. Como proceder?

Opa Leonildo, tudo bem ?

Você pode postar algumas informações aqui por favor ?

Rode o comando react-native info e cole aqui as informações que ele gera só pra eu dar uma olhada em quais versões estão sendo usadas e detalhes do seu ambiente.

Coloque também o conteúdo do seu arquivo package.json, por favor.

react-native info

D:\react-native\InstaluraMobile>react-native info
Scanning folders for symlinks in D:\react-native\InstaluraMobile\node_modules (39ms)

Environment:
  OS: Windows 10
  Node: 8.11.3
  Yarn: 1.7.0
  npm: 5.6.0
  Watchman: Not Found
  Xcode: N/A
  Android Studio: Version  3.1.0.0 AI-173.4819257

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

package.json

{
  "name": "InstaluraMobile",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node node_modules/react-native/local-cli/cli.js start",
    "test": "jest"
  },
  "dependencies": {
    "react": "16.3.1",
    "react-native": "0.55.4",
    "react-native-navigation": "^2.0.2452"
  },
  "devDependencies": {
    "babel-jest": "23.4.0",
    "babel-preset-react-native": "4.0.0",
    "jest": "23.4.0",
    "react-test-renderer": "16.3.1"
  },
  "jest": {
    "preset": "react-native"
  }
}

Fala Leonildo, tudo bem ?

Bom, pelo que vi não tem nada no seu ambiente que sinalize algum problema. Você poderia compartilhar seu código com a gente pra podermos dar uma olhada mais próxima. É difícil saber a razão dos problemas apenas com as informações que conseguimos apresentar por aqui.

Você poderia colocar seu código em algum repositório do github ? (por exemplo)

Abraço!

Opa, tudo sim e com voce?

Aqui esta o projeto: https://github.com/ubialimv/InstaluraMobile

solução!

Fala Leonildo, tudo bem ?

Baixei seu projeto aqui pra testar. Vou descrever as etapas que segui buscando qual o possível problema.

  • Abri a pasta do projeto no VS Code pra ter uma noção de como estava o código.

  • Em seguida, abri a pasta android/ como projeto no Android Studio, pra ver pela IDE quais problemas ela apresentava. O gradle não conseguia buildar a app e apresentava erro logo de cara. Percebi que o gradle não estava conseguindo adicionar o módulo da lib react native navigation ao projeto.

  • Rodei então um yarn add react-native-navigation@latest na pasta do projeto no terminal pra adicionar a lib de navegação no projeto.

  • Depois de baixar voltei ao Android Studio e dei um retry no processo de build que tinha falhado. Demorou um pouco mas fez o build com sucesso.

  • Percebi que você já tinha feito todos os demais ajustes (no build.gradle do module app, na MainActivity.java, e na MainApplication.java), exceto por um método que ficou faltando na MainApplication.java.

  • Adicionei o método ao fim da classe:

public class MainApplication extends NavigationApplication {
    ...
    //código anterior omitido da MainApplication

    @Override
    public String getJSMainModuleName() {
        return "index";
    }
}

INFO: Esse último método passou a ser importante desde que o React Native optou por usar apenas um arquivo de entrada (o index.js) ao invés de usar os arquivos de entrada separados por plataforma (os index.ios.js e index.android.js)

  • Após esses primeiros ajustes terem corrigido o problema com o build. Tentei executar pelo terminal normalmente com react-native run-android. Obtive o mesmo erro, parece que algo estranho aconteceu com a pasta de build do projeto e nem começa a tentar empacotar a aplicação.

  • Tentei subir com o ios só pra ter certeza. Fez o build com sucesso e iniciou a app.

image

  • Tentei apagar o conteúdo da pasta build/ (interna à pasta do projeto android/) e apagar também o conteúdo da pasta build/ (interna à pasta android/app/) e rodar de novo. Mesmo erro.

  • Fiz novamente o build por dentro do android studio e voltei a tentar rodar pelo terminal. Mesmo erro. :(

Testei mais um monte de coisas. Realmente não consegui entender por que o processo de compile package e install no device sequer começa a executar pelo terminal e já vem esse erro.

Aí então tentei outra opção ao invés de continuar nessa investigação que parece não chegar ao fim. Decidi criar outro projeto do zero e transportar seu código para ele. Com um projeto zerado, no ultimo release da versão, o build continuava falhando por outro motivo. Um módulo específico da lib react native navigation não era encontrado. Imagino que aqui a causa seja incompatibilidade entre as versões instaladas das libs.

Então criei com base nesse boilerplate (com versões compatíveis entre react, react-native e react-native-navigation) https://github.com/rafael-rollo/boilerplate-js56-navigation

Com o novo projeto criado, transportei seu código para dentro dele e apenas alterei o App.js para que registre as telas no componente superior da lib de navegação. (Passo que ainda estava faltando)

App.js

import { Navigation } from 'react-native-navigation';
import Feed from './components/Feed';
import Login from './screens/Login';

export default () => {
    Navigation.registerComponent('Login', () => Login);
    Navigation.registerComponent('Feed', () => Feed);

    Navigation.startSingleScreenApp({
        screen: {
            screen: 'Login',
            title: 'Login'
        }
    });
}

Com esse ajuste e mais nenhum problema de versão nem de build a app subiu com sucesso.

image_android

Pra facilitar a sequencia do seu estudo disponibilizei o projeto ajustado no github neste repo: https://github.com/rafael-rollo/instalura-ubialimv

Clone ele no sua máquina delete a pasta .git/ interna e aponte pro seu repositório no github, futuramente pode ser que ele não esteja mais lá :)

Espero ter ajudado. Abraço!

Funcionou. Obrigado!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software