在开发 react-native 的时候,总会有很多奇奇怪怪的问题出现,因此记录下来。
measureInWindow 无效?
在 javascript 中使用 measureInWindow 获取到的一切数值都是 0 或者 undefined ? 但是代码中这个 View 又确确实实占据着位置。这时候你应该看看该 View 有没有设置上一些特殊是样式。按照官方的意思,只有设置了原生样式的 View 才能在安卓上获取到位置和宽高,因为最理想的做法就是在 View 上设置一个 opacity:1 的样式。
自定义组件的时候,Surfaceview 在 flex 下的 bug
在原生安卓提供的 Surfaceview 做成子组件后,使用 flex 布局的话,则会有显示问题。 最理想的方案就是,在外面套一层 LinearLayout,内层的 Surfaceview 需要注意跟随父层大小变化即可。
index.android.bundle 找不到
遇过一个很奇葩的 bug 。开发的时候,一点问题都没有,但是打包出来之后的 APK 安装上去,显示 index.android.bundle 没有找到。有时候是因为生成不了 index.android.bundle 直接打包不了 APK。
后来发现团队的小伙子在 android/build.gradle 里面的把 gradle 给升级了。从而引发了这 bug 。 替换回来就好了。
dependencies {
//classpath("com.android.tools.build:gradle:4.0.1") 原来的
classpath("com.android.tools.build:gradle:4.1.2")
}