首先我用的是windows10,react-native 0.25, genymotion
http://reactnative.cn/docs/0.25/embedded-app-android.html#content
使用的是这篇文章的参考,官方文档
大概过程都说过了吧,但是其中还是有不少坑要踩的。
首先按照步骤运行之后,你可能会遇到一下几个问题。
开发者菜单
按照教程加入dev setting的话你得在加入一个activity
<activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
build.gradle
依赖
如果报错提示com.android.support:appcompat-v7
之类的报错,就把build.gradle
中的依赖改成
compile 'com.android.support:appcompat-v7:23.0.1'
打开模拟器,出现红框 Can't find variable: __fbBatchedBridge
这个错误,原因大概就是木有连接上服务器呢,那么哪些原因会导致木有链接呢?
模拟器的网络开了吗?连接地址是你的服务器ip吗?服务器正确开启了吗?或者你的nodejs版本是不是太老了?
npm start
里面也有一些提示,跟着提示做一般就没有问题。
植入原生应用的话我是没改过访问地址的,可以在开发者菜单里面修改
找不到模块的问题
Requiring unknown module "ReactPerf". If you are sure the module is there, try restarting the packager or running "npm install"
参照这个网站,你可以先使用 npm list
看一下你是否有没有安装的包,之后手动加入你的package里面再npm install
试一下吧
成功后的警告Warning: ReactNative.createElement is deprecated. Use React.createElement from the “react” package instead.
Deprecations
Requiring React API from react-native is now deprecated - 2eafcd4 0b534d1 Instead of:
import React, { Component, View } from 'react-native';
you should now:
import React, { Component } from 'react';import { View } from 'react-native';
java.lang.UnsatisfiedLinkError: could find DSO to load: libreactnativejni.so
32 64的问题?
首先gradle.properties
最后添加 android.useDeprecatedNdk=true
之后再build.gradle
中添加
android {
...
defaultConfig {
...
ndk {
abiFilters "armeabi-v7a", "x86"
}
}
...
packagingOptions {
exclude "lib/arm64-v8a/librealm-jni.so"
}
...
}
白屏
系统设置的权限不够, 显示悬浮窗这个权限