持续更新...
1.错误:java.lang.IllegalStateException: Native module RNFetchBlob...
java.lang.IllegalStateException: Native module RNFetchBlob tried to override RNFetchBlob for module name RNFetchBlob. If this was your intention, set canOverrideExistingModule=true
图片1
错误原因
./android/app/src/main/java 下的MainApplication.java文件中 有多个
new RNFetchBlobPackage()
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
new RNFetchBlobPackage(),
new RNDeviceInfo(),
new RNFetchBlobPackage(),
new MyReactPackage()
);
}
2.错误:console.error:"React Native version mismatch".
android在debug模式下,出现如图2情况,这种情况一般是新建项目时发生,该错误是官网错误所致,解决方案是:
//compile 'com.facebook.react:react-native:+'
#改为如下形式:
compile ('com.facebook.react:react-native:0.47.1'){force=true}
图片2
某些情况下,老的项目会出现如下错误:
The development server returned response error code:404
具体情况如图3和图4所示:
此bug原因和图2的原因一致,解决方案一致。
另外,依赖的第三方module,如果compile 'com.facebook.react:react-native:+'
,亦要修改。
3.错误:Building and installing the app on the device (cd android && ./gradlew installDebug)"
在mac中新建或新导入的项目,执行react-native run-android时,报一下错误。
图片5解决方案:
若一切环境都配置好,且android手机设备已连接,那么可以尝试以下来确保权限是否足够
在项目的终端中添加以下命令:
chmod 755 android/gradlew
4. Error:Metro Bundler can't listen on port 8081
端口被占用
解决方法:
(1)找到占用端口的应用
lsof -i :8081
(2) kill (40247 是应用的 PID)
kill -9 40247
(3)然后执行
npm start
网友评论