美文网首页
自我总结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