RN开发FAQ,持续更新...
一、样式问题
-
Flex 布局
-
- alignItems在iOS端可能不生效,需设置flexWrap 为noWrap
- alignContents在flexWrap=wrap多行的时候才会生效;
-
Position
rn中只有relative和absolute;
-
Text组件
Text里嵌套的Text标签默认是inline布局,不能设置margin,padding,width;
View里嵌套的Text标签可以使用block元素样式;
-
FlatList
-
- 父级必需设置高度(宽度),所以上滑加载时不能嵌套到scrollView中;
- Style尽量不要设置flex布局属性,避免item样式错乱;
二、消息推送(个推 react-native-getui)
Githab: https://github.com/GetuiLaboratory/react-native-getui
Docs: https://docs.getui.com/getui/mobile/android/androidstudio/
- Android常见问题
Q. Could not find com.getui:sdk-for-google-play:4.3.5.9.
A. 在项目根目录 build.gradle 文件的 allprojects.repositories 块中,添加个推 maven 库地址 maven { url “https://mvn.getui.com/nexus/content/repositories/releases/“}(个推Docs Android 集成指南2.1);
Q. 程序包android.support.annotation不存在
A. (1). 在app/build.gradle dependencies中添加依赖
implementation 'androidx.annotation:annotation:1.1.0'
(2). android.support.annotation改成androidx.annotation
Q. Error: meta-data#MEIZUPUSH_APPID@value等多厂商配置问题
A: 在AndroidManifest.xml文件中根据终端的错误进行配置
标签中记得加上tools:replace=“android:value”
同时头部根标签加上xmlns:tools="http://schemas.android.com/tools"
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package=“com.linhuiba.Location">
Q: GetuiModule 未找到定义等
A: 在AndroidStudio中根据错误文件提示一个个点过去,点击GetuiModule自动。提示import引用即可
三、AndroidStudio打包问题
Q: Expo-file-system kotlinVersion expected to 1.4.0
A: AndroidStudio找到Gradle Scripts文件夹下图中文件打开文件搜kotlinVersion,将后面的版本号替换成1.4.0
四、Xcode打包问题
Q: build时报错 CompileSwiftSources normal arm64 com.apple.xcode.tools.swift.compiler (in target 'Alamofire' from project ‘Pods')
A: 将报错的pod包删除,重新install;
Q: build时报错 Can't find the 'node' binary to build the React Native bundle.
A: 在命令工具中输入which node,再将输出的node路径与which软链接上,软链接命令 ln -s $(which node) /usr/local/bin/node(which node 输出的路径);ps: 如有使用过nvm,最好先执行nvm unalias default;