安装环境
java+jdk+sdk
sdk可以直接通过IDE安装
根据官方文档下载SDK Platforms+SDK Tools所需要的相关工具
配置IDE的JDK和SDK路径
根据RN官方文档配置
ANDROID_HOME环境变量
其他环境变量
安装RN命令
1 | npm i -g react-native-cli |
初始化工程目录
1 | react-native init demo |
打包运行
1 | react-native run-android |
idea关联genymotion
查看官网示例
1 | 在react-native目录, 新建local.properties |
React+ReactNative基础知识
flex
1 | flexDirection:'row', |
命令
设备名查询1
adb devices
测试sdk是否配置好环境变量1
adb
测试jdk是否配置好环境变量1
adb
虚拟技术 VT-x 和 Hyper-V冲突
下载Gradle依赖
Sync Project with Gradle Files
idea按钮
关联依赖
1 | Alt+Enter |
查看、修改Gradle版本
单击‘File’菜单,出现下拉列表,选择‘Project Structure’,单击‘Project’就可以查看和修改了
生成签名证书
见Nginx学习笔记
打包
安卓打包命令
1 | React-native bundle --platform android --dev false --entry-file index.android.js |
bundle 拆分
方案一:
优点:
客户端可以直接嵌入base部分,而不用进行二次合成
http://blog.csdn.net/sinat_17775997/article/details/70511668
https://github.com/desmond1121/react-native-split
方案二:
缺点:客户端必须进行一次base+business合成,效率会相对低一点
http://solart.cc/2017/02/22/react-native-jsbundle_patch/?utm_source=tuicool&utm_medium=referral
方案三:
https://github.com/facebook/react-native/pull/10804
https://github.com/facebook/metro-bundler
Debug调试
方法一:
仿真器中CTRL+M出现菜单选 remote js debugging
方法二:
IDEA的RN插件选择open debuger-ui
注意:只能打开一个debugger平台否则报错
安装问题汇总
1.sync提示
Execution failed for task ‘app:prepareDebugAndroidTestDependencies’
解决办法:https://stackoverflow.com/questions/30558737/execution-failed-for-task-apppreparedebugandroidtestdependencies
2.打包出现找不到react
1 | npm i |
查看最后 npm WARN 里边会提示ReactNative依赖的React版本
3.CANNOT TRANSLATE guest DNS ip
关闭代理重启AS
4.真机上出现不支持64位系统
http://blog.csdn.net/ssksuke/article/details/52611689
5.Android project not found. Maybe run react-native android first?
可以运行1
react-native upgrade
该命令运行之后你会发现你的android项目的目录结构变化了
之后可以执行1
react-native run-android
6.安卓的跳转写法
1 | startActivity(new Intent(MainActivity.this, MyReactActivity.class)); |
7.react-native run-android Android project not found
因为目录结构和rn默认的目录不一直1
react-native upgrade
8.Cannot resolve syymbol ‘build’ on line import com.android.build.OutputFile in app/build.gradle
用IDEA单独打开android目录,而不是打开整个项目目录
9.Gradle版本和Gradle插件版本不对应
方法一:
Gradle版本位置:gradle → wrapper → gradle-wrapper.properties1
distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
Gradle插件版本位置:根目录下build.gradle里的1
classpath 'com.android.tools.build:gradle:2.2.3'
将一个在本机可以跑的项目的版本号,直接复制过去就可以了
方法二:(推荐-自动更新):
前提:setting(内搜索Gradle)->选中use gradle wrapper task configuration(以gradle-wrapper内版本配置自动下载),
如果下载失败只能下载后尝试选择用本地的gradle版本
修改一次build.gradle里的版本号后,右上角会提示sync点击,会出现报错让更新gradle版本,点击更新就ok了
方法三:
直接在IDEA的Terminal里输入1
gradlew
则会自动安装需要的版本(要在wrapper.properties配置好)
下载好的目录1
C:\Users\zhangpeng\.gradle\wrapper\dists\gradle-2.2-bin\ca0flae0itb57he40lyj6fhpp\gradle-2.2
编程问题汇总
兼容两端
样式1
2
3
4
5
6
7
8
9
10
11
12
13
14
15import { Platform, StyleSheet } from 'react-native';
const styles = StyleSheet.create({
container: {
flex: 1,
...Platform.select({
ios: {
backgroundColor: 'red',
},
android: {
backgroundColor: 'blue',
},
}),
},
});
组件:1
2
3
4const Component = Platform.select({
ios: () => require('ComponentIOS'),
android: () => require('ComponentAndroid'),
})();
动画transform
1 | class Playground extends React.Component { |
transform使用
注意:rotate有个问题
rotate解决