react-native 運行bug記錄

持續(xù)更新...

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模式下,出現(xiàn)如圖2情況,這種情況一般是新建項目時發(fā)生,該錯誤是官網(wǎng)錯誤所致,解決方案是:

//compile 'com.facebook.react:react-native:+'
#改為如下形式:
compile ('com.facebook.react:react-native:0.47.1'){force=true}
圖片2

某些情況下,老的項目會出現(xiàn)如下錯誤:
The development server returned response error code:404
具體情況如圖3和圖4所示:

圖片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中新建或新導(dǎo)入的項目,執(zhí)行react-native run-android時,報一下錯誤。

圖片5

解決方案:
若一切環(huán)境都配置好,且android手機設(shè)備已連接,那么可以嘗試以下來確保權(quán)限是否足夠
在項目的終端中添加以下命令:

chmod 755 android/gradlew

4. Error:Metro Bundler can't listen on port 8081

端口被占用
解決方法:
(1)找到占用端口的應(yīng)用

lsof -i :8081

(2) kill (40247 是應(yīng)用的 PID)

kill -9 40247

(3)然后執(zhí)行

npm start
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容