乐趣区

reactnative-的一些坑

TypeError: undefined is not an object (evaluating ‘props.getItem’)

@babel/plugin-proposal-class-properties 的锅

解决

添加.babelrc
配置优先级 @babel/plugin-transform-flow-strip-types 高于 @babel/plugin-proposal-class-properties

{
  "plugins": [["@babel/plugin-transform-flow-strip-types"],
    ["@babel/plugin-proposal-decorators", { "legacy": true}],
    ["@babel/plugin-proposal-class-properties", { "loose": true}]
  ]
}

清除缓存并启动
expo start -c

不做上述处理,不知道为什么原项目不会报错,但当把整个项目 copy(包括 node_modules) 然后挪个位或者换个名就会报以上错误。

Failed to install the following Android SDK packages as some licences have not been accepted.

原因

一般产生于没用过 Android Studio,直接打开项目 build。

解决

macOS :
yes | sudo ~/Library/Android/sdk/tools/bin/sdkmanager --licenses

Windows:
%ANDROID_HOME%/tools/bin/sdkmanager --licenses

Execution failed for task ‘:app:validateSigningDebug’.

方案一

点击 Android studio File- 选择 ProjectStructure- 选择 app- 选择 signing

最后直接把 Store File 里指定的 Keystore 文件的路径换成自己的 Keystore 路径 (当然这里可能需要自己签名有点麻烦)

再 clean 一下工程就可以了。

方案二

打开 build.gradle(Module:app),把 signingConfigs 节点注释掉;再把 buildTypes 节点改成原始的:

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
退出移动版