声明
此文章基于博客Biscuitkid的原创源码改编总结,在该博客的基础上进行复现。
这里是参考
博主原文链接:https://blog.csdn.net/weixin_48848716
博主源码链接:https://github.com/KinFaiLeong/Android-TCP
bilibili学习链接:https://www.bilibili.com/video/BV1Np4y1a7UN?p=3&spm_id_from=pageDriver
问题描述
最近需要在Android Studio 上实现TCP通信,首次使用Android Studio 只能先冲浪参考大佬们的作品并学习。恰好找到博客Biscuitkid的优质博文分享,心中暗自窃喜——离成功不远了,哪知根据链接下载源码后解压,打开Android Studio,然后“File->Open”该文件,发现会报错,错误一片红色。
报错语句:
Cannot resolve symbol’androidx’
Cannot resolve symbol 'AppCompatActivity’Method
does not override method from its superclass’
Cannot resolve method ‘setContentView’ in ‘MainActivity’
Cannot resolve method 'setOnClickListener(anonymous View.OnClickListener)'等等的问题,错误如下图
个人分析原因
猜测是缺少Jar包,试过多种方法均无法解决,它自身无法加载缺失的文件包,最终自己新建项目才解决。网络上尝试了以下的方法均对我的问题不起作用,你可以先试一试这些简单方法,没准有用的。
1、File->Invalidata Caches/Restart->Invalidata and Restart
2、Build->Make Module
3、Build->Make Project
4、Build->Clean Project
5、Build->Rebuild Project
最终解决办法
a.手动创建Activity:
File——>New Project——>No Activity->,结果如图
接着找到main/java/com.example.tcp_blog,右键com.example.tcp_blog—>new->Java Class新建四个文件如下图
接着找到“res”右键new->directory命名为“Layout”如图
接着在“Layout”右键new->Android Resource File->并对xml文件命名
得到下图后,双击“first_layout.xml”并点击右上角“code"只显示代码
依次选择对应的文件复制源码文件中的代码到自己的“first_layout.xml”和“AndroidManifest.xml”以及“com.example.tcp_blog"下的4个文件,共完成6个文件的替换。
重点:
修改第一句为:package com.example.tcp_blog;
与文件名相对应,后续所复制过来的几个文件都需要对应修改
如上图会报错:将报错处根据自己建立的文件名修改,如图中setContentView(R.layout.activity_main);
应该为:setContentView(R.layout.first_layout);
将Manifest.xml文件替换,会出现报错如下图
将android:theme="@style/AppTheme">
替换为:
android:theme="@style/Theme.AppCompat">
注意三连
主要的这几步完成后,还是有很多的错误,这时进行关键的一步:File->Invalidate Caches/Restart,然后确认“Invalidate and Caches”重启AS,重启动不再报错,点击运行,结果如图10所示
总结:
总而言之,进行源码复现时出现问题了,常常可以考虑自己新建项目以适应自己的编译环境,DEBUG真是个痛苦的过程。
再次申明
本人学习AS小白小白小小白水平,一周左右时间,仅仅分享和记录自己踩过的坑,给别人借鉴也供自己做笔记学习,可能方法不是最优甚至很愚蠢,不喜勿喷,高抬贵手。最后再次感谢博主Biscuitkid的原创分享。