美文网首页
自我总结react-native的常见命令及自己所见错误

自我总结react-native的常见命令及自己所见错误

作者: 迷蝶香_9392 | 来源:发表于2018-10-29 11:46 被阅读0次

一、Application has not been registered和Could not connect to development sever

  这两个错误都是指你的项目未与react-native的服务器链接上

  1、 一种在夜神模拟器上调试的方法:

    解决方法有两种,一种重新运行你的项目,在cmd里在你项目的路径下输入命令react-native run-android;另一种是新开一个cmd还是在当前项目路径下使用命令 react-native start或者npm start,开启react-native服务器,再reload刷新一下即可,最后结果就如下图所示啦,成功可以重新实时刷新修改项目的页面内容啦~用哪种方式看个人喜好咯


2、一种真机上调试的方法:

啰嗦一下

真机调试的方法是 

第一步:打开手机的开发者模式,当然每个机型的打开开发者的方式不同,具体度娘一下就知道啦~

第二步:手机用数据线和电脑链接上,还是老规据,在cmd里输入adb devices,如显示图下所示的样式,即表示真机已连接上啦~

注:如果你中途离开,拔掉了你的手机,也不用担心得重新react-native run-android,又得百无聊赖的等好久,你可以使用命令在cmd里是使用命令adb reverse tcp:8081 tcp:8081,即可重新链接上重新实时刷新调试

如果在真机上也遇见上面类似的问题,也可以使用上面的老套路:

重新运行你的项目,在cmd里在你项目的路径下输入命令react-native run-android;或者是新开一个cmd还是在当前项目路径下使用命令 react-native start或者npm start,开启react-native服务器

二、如果你也出现了像下图中的500错误,那你就得好好检查你的语法或者别的。  

如果你添加图片的话,你得好好检查一下你的文件路径有没有出错,样式格式有没有写错;

如果你项目入口路径,注意看下你的书写格式有没有错误,得一一对应,如下图所示:

注:500错误一般要看node.js里的图文界面,看报错具体在哪一行~

三、app:processDebugResources'.

报错信息为:

Error:Execution failed for task ':app:processDebugResources'.

> java.io.IOException: Could not delete path 'XXXXXX\XXXXX\ProjectName\android\app\build\generated\source\r\debug\android'.

build文件无法删除导致的,

解决办法:

进入项目文件夹下手动删除android\app\build文件夹内的所有文件后再次运行,这是由于插件重新加载会需要删除build里的东西,但是好像不知道为什么老是会删除失败,就需要我们手动删除啦~,一般用windows环境会出现的问题,不一定是全部~

四、有些时候觉得自己的node_modules有问题

你可以在项目里打开cmd,使用命令rm -fr node_modules/,就可以删除npm环境

你可以在项目里打开cmd,使用命令npm i,可以安装npm环境

这样你就可以有全新的npm环境啦~

五、最近在用node.js里的websocket,它的简单小栗子~

首先你得在你新建一个空项目:

安装node的websocket,命令是如下两个,同样在cmd里运行,同样是在项目文件下

npm i express -S

npm i ws -S

服务端代码:

客户端:

<!DOCTYPE html>

<html>

<head>

    <meta charset="utf-8" />

    <script>

         let ws=new WebSocket('ws://localhost:9999');

        var sendMessage = "";

        // onopen是客户端与服务端建立连接后触发

        var video = document.getElementById("videoSource");

        var startV = document.getElementById("startV");

        var pauseV = document.getElementById("pauseV");

        var endV = document.getElementById("endV");

        ws.onopen = function () {

            //ws.send('哎呦,不错哦');

            // ws.send("video");

        };

        // onmessage是当服务端给客户端发来消息的时候触发

        ws.onmessage = function (res) {

            console.log(res); // 打印的是MessageEvent对象

            // 真正的消息数据是 res.data

            console.log(res.data);

            // setMessageInnerHTML(res.data);

            // videoPlay();

            if (res.data == "video") {

                document.getElementById("videoSource").play();

            }

            if (res.data == "pause") {

                document.getElementById("videoSource").pause();

            }

            if (res.date == "end") {

                document.getElementById("videoSource").pause();

                document.getElementById("videoSource").currentTime = 0;

            }

        };

        function setMessageInnerHTML(innerHTML) {

            document.getElementById('message').innerHTML += innerHTML + '<br/>';

            sendMessage = innerHTML;

        }

        function videoPlay() {

            document.getElementById("videoSource").play();

            // ws.send("video");

        }

        function videoPause() {

            document.getElementById("videoSource").pause();

            // ws.send("pause");

        }

        function videoEnd() {

            document.getElementById("videoSource").pause();

            document.getElementById("videoSource").currentTime = 0;

            // ws.send("end");

        }

        // window.onload = function () {

        //    var i = 0

        //    //开始播放视频

        //    startV.onclick = function () {

        //        video.play();

        //        ws.send("video");

        //        if (sendMessage == "video") {

        //            video.play();

        //            alert("video")

        //        }

        //        console.log(sendMessage);

        //    }

        //    //暂停视频播放

        //    pauseV.onclick = function () {

        //        video.pause();

        //    }

        //    endV.onclick = function () {

        //        video.pause();

        //        video.currentTime = 0;

        //    }

        // }

    </script>

</head>

<body>

    <h1>客户端</h1>

    <p id="message"></p>

    <video id="videoSource" style="width: 450px;height: 400px;" muted="muted">

        <source src="./movie/m1.mp4" type="video/mp4">

    </video>

    <!-- <video src="./movie/m1.mp4" autoplay="autoplay" style="width: 450px;height: 400px;"></video> -->

    <!-- <button id="startV" onclick="videoPlay()">开始</button> -->

    <!-- <button id="pauseV" onclick="videoPause()">暂停</button> -->

    <!-- <button id="endV" onclick="videoEnd">停止</button> -->

</body>

</html>

效果如上~emmm,不知道怎么引用代码,只能呈现效果这样啦~

使用方法:

在这个项目的路径使用cmd命令node sever.js,这里的server.js是服务器代码的名字

在用两个不同的浏览器开启客户端的html文件,你就可以试试有意思的效果啦~,这个也可用不同的两个电脑去运行客户端,

不过得改一下这里的ip地址,在局域网内能访问到~

六、一般调试方法

1、像我比较习惯用alert输出,看方法有没有运行到这里

2、页面改变样式调试的话,一般习惯用backgroundColor来查看布局位置,接着用相应的属性去控制

3、比较高大上的调试方法没怎么用过,就不说啦,不然会误人子弟的~~~

相关文章

网友评论

      本文标题:自我总结react-native的常见命令及自己所见错误

      本文链接:https://www.haomeiwen.com/subject/oahkiftx.html