Eu estava correndo meu existente Reagir Native Projeto em meu dispositivo Android real. Em seguida, de alguma forma, este erro aparecer. O erro são sempre sobre "não pode encontrar o símbolo". Eu tenho JDK e SDK e adicionar em meus variáveis do sistema. Mas eu ainda não sei por que ele me dá erro como este. Pelo que me lembro, eu só rebaixar a versão de reagir nativa.
: App: compileDebugJavaWithJavac - não é incremental (por exemplo, saídas mudaram, nenhuma execução anterior, etc.). D: \ rnprojects \ firstproject \ android \ app \ src \ main \ java \ com \ emptyprojecttemplate \ MainApplication.java: 5: erro: não é possível encontrar o símbolo de importação com.facebook.react.ReactApplication; ^ Símbolo: class localização ReactApplication: pacote com.facebook.react D: \ rnprojects \ firstproject \ android \ app \ src \ main \ java \ com \ emptyprojecttemplate \ MainApplication.java: 6: erro: não é possível encontrar o símbolo de importação com.facebook. react.ReactNativeHost; ^ Símbolo: class ReactNativeHost local: pacote com.facebook.react D: \ rnprojects \ firstproject \ android \ app \ src \ main \ java \ com \ emptyprojecttemplate \ MainApplication.java: 14: erro: não é possível encontrar o símbolo classe pública MainApplication estende Aplicação implementos ReactApplication {^ símbolo: class ReactApplication D:
FALHA: Constituição falhou com uma exceção.
- O que deu errado: Falha na execução de tarefas ': app: compileDebugJavaWithJavac'. Compilação falhou; veja a saída de erro do compilador para obter detalhes.
build.gradle:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.3'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
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"
}
}
}
Build.gradle / app:
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
applicationId "com.emptyprojecttemplate"
minSdkVersion 16
targetSdkVersion 22
versionCode 1
versionName "1.0"
ndk {
abiFilters "armeabi-v7a", "x86"
}
}
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"
}
}
// 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 fileTree(dir: "libs", include: ["*.jar"])
compile "com.android.support:appcompat-v7:23.0.1"
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'
}
Seu stacktrace começa com: error: cannot find symbol import com.facebook.react.ReactApplication
esta parece sugerir que não consegue encontrar a importação Biblioteca Reagir.
Vou incluir uma resposta no Github para você, leia aqui:
https://github.com/transistorsoft/react-native-background-geolocation/issues/294
(Btw, isso se relaciona com o seu build.gradle em /your-project/android/build.gradle
)
No caso de alguém mais está enfrentando o mesmo problema: certifique-se de adicionar corretamente novos repositórios. De acordo com docs Android cada repo maven devem estar em seu próprio maven {} bloco.
É por isso
maven {
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
url "$rootDir/../node_modules/react-native/android"
url 'some new extra repo'
}
breaks dependências. A versão correta é
maven {
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
url "$rootDir/../node_modules/react-native/android"
}
maven {
url 'some new extra repo'
}
ATUALIZAR
Como o acima não está resolvendo o problema e sua build.gradle (s) olhar bom (para mim). Vou incluir algumas outras soluções:
Atualizar RN e RN-cli como recomendado aqui:
Não é possível resolver símbolo ReactApplication / ReactNativeHost
Outra aqui:
FALHA: Constituição falhou com uma exceção em reagir nativo Android
Outra aqui:
Reagir erro android nativa: não é possível encontrar o símbolo
Último recurso
Ele pode valer a pena em apenas criar um novo projeto de teste (com as versões mais recentes), como react-native init anotherproject
para ver se que é executado.