记录自己的日常总结与错误

本文记录了作者在日常开发中遇到的问题与解决方案,涵盖了MySQL数据库操作、GitHub版本控制使用、Visual Studio IDE调试技巧以及Java和Android编程中的常见错误与最佳实践。通过对这些常见问题的分析,旨在帮助读者提升开发效率并避免类似错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//1.解决VMware的方法:
    管理员身份运行cmd -> 输入 netsh winsock reset -> 重启电脑 同时也是windows修复网络问题的一种方法
//2.解决spring中tx报错问题:
    在设置xml catalog 时要把key改成http://www.springframework.org/schema/tx/spring-tx.xsd
//3.解决jsp链接数据库中文乱码问题:
    首先在mysql端使用show variables like '%char%;然后把所有都设置为utf-8(反正要一致),修改/etc/my.cnf中设置default为utf-8;
然后jsp也面中如果是post传输参数,则需要先设置request.setCharacterEncoding=utf-8,如果是get传输就在链接mysql的url后面加useUnicode=true&characterEncoding("utf-8");
最简单的就是直接设置一个过滤器,对所有请求路径的request和response设置统一编码
//4.用jsp+javabean+servlet模式做网上商城时html中布局问题:
    div:overflow属性:设置div滚动条;z-index属性:值越大表示显示在上面,在div覆盖时(如二级导航)有用,但要设置position:relative
//5.android studio下载sdk时遇到的问题:
    在学校用android studio下载sdk时只能用手机热点,无法用校园网(原因未知),
或者修改host文件C:/windows/system32/drivers/etc/hosts
如:203.208.41.174   dl.google.com
//6.android studio 5037端口被占用问题(Unable to connect to adb daemon on port: 5037):
    修改5037端口:环境变量->新建->变量名:ANDRIOD_ADB_SERVER_PORT->变量值:随便,我自己的是:7777
//7.android studio DDMS的使用:
    在android studio中打开terminal,找到SDK路径,我的是D:\Android,然后找到tools下的monitor.bat,执行即可
替代品:D:\Android->tools->bin->uiautomatorviewer,不过我用的少,我下的AS右下角可以查看device文件,logcat也在下面的console旁边
//8.记住,先打开DDMS,再打开模拟器,不行的话再按照网上的方法调试。
//9.VMare问题:
    今日升级为win10后,之前安装的VMware不兼容,就把之前的创建的虚拟机文件备份,重新安装Vmware,再导入这些文件。
但之后需要重置虚拟网络适配器:还原默认设置,如果不还原的话会产生诸如ping不通的问题,个人认为可能是电脑升级连带着虚拟网络适配器的ip和DHCP改变了,所以如果不还原手改的话需要改很多地方,最简单的就是直接点还原默认设置,虚拟机会给我们自动搞定之后的一切。当然之前自定义的虚拟网络又得重新设置一遍
//10.删除Xftp和Xshell之后总是弹出Windows installar:
     原因:注册表没删干净
     解决办法:cmd->regedit->搜索注册表->Xftp,XShell,Xshell,netSarang,Netsarang,NetSarang将搜到的所有关于Xftp,Xshell的注册表项都删除才算删干净->重启
//11.android地图软件:打包之后获取不到地图信息
    原因:发布SHA1和调试SHA1设置不一致
    方式一 :
          打开你Android studio底部的terminal 执行keytool -v -list -keystore +签名文件路径+签名文件.jks 。然后回车 会提示你输入你的签名密码 输入后回车 你会看你签名打包后的apk的sha1 
    方式二 :
          cmd 打开dos cd+keytool路径(keytool 在你jdk bin包下)+keytool -v -list -keystore +签名文件路径+签名文件.jks 。然后回车 会提示你输入你的签名密码 输入后回车 你也会看你签名打包后的apk的sha1 
    然后在相应的平台(比如我的是高德地图API平台)在发布SHA1那一栏输入上面获得的SHA1,调试SHA1那一栏就是之前那个SHA1
    注意:这个SHA1和你创建key相关,即每一个新的key所生成的SHA1都不一样
//12.windows下文件拒绝访问问题:
    当某个文件拒绝访问时,可能是我们给该文件的权限不够,就像linux下一样,不同用户有不同的权限,我们可以修改该文件的权限:右击该文件->属性->修改文件所有者或者权限
//13.kali开启图形界面卡在鼠标不动解决办法:
    修改默认启动为命令行界面,在命令行界面下使用startx命令或init 5命令或两者结合(先startx后init 5)进入图形界面。
//14.github创建sshkey,在gitBash使用命令:
    ssh-keygen -t rsa -b 4096 -C "你的邮箱",一路enter,找到创建时存放.rsa.pub的文件,打开,复制,放到github上去
//15.vs网络编程需要配置:
    项目属性->链接库->输入里面加如ws2_32.lib,同时注意上面的debug是x86,而不是x64,同时应使用#include<WS2tcpip.h>头文件,因为#include <Winsock2.h>
里的一些老方法在x64上会产生不可预知错误
//16.vs拓展工具下载太慢解决方法:
    更改适配器->属性->去掉ipv6前的勾
//17.网络编程的一些测试可能需要关闭防火墙,比如多播。
    网络编程一些error4996错误解决:
    1.在项目名称上右键,打开属性
    2.在属性中找到预处理器定义
    3.在预处理器定义中添加以下代码
    _WINSOCK_DEPRECATED_NO_WARNINGS
//18.Android Studio使用老式的网络通信方法产生编译不通过,报错“找不到org.apache.http.HttpEntity”
    如果你使用的target sdk是23以上请在module下的build.gradle加入
android{ useLibrary 'org.apache.http.legacy' }
//19.git push项目时,发现多余的文件夹在里面,里面包含大文件,超过20M,因为仓库有限制,只能上传5M的东西,结果失败了。删除多余的文件夹后,add,comit,push报错git failed to push some refs to git
    解决办法:
    1.git pull --rebase origin master
    2.git push -u origin master
//20.java中接口可以多重继承,内部类也可以,不知道脑子咋回事,突然就短路了,还是记下来吧
//21.记一次解决添加mysql-connector.jar包之后tomcat打不开问题
    解决:一定要把tomcat下的lib文件所有者和所在组改为你当前正在使用的用户及其所在组,同时添加到tomcat和jdk的lib下的mysql-connector包也改成一致,添加执行
添加可执行权限,同时要把work工作目录下的各个文件夹的属主和所在组改为当前正在使用的用户及其所在组!!!
//22.CentOS6和CentOS7进入单用户模式(可以修改、找回root密码)的方法:
    CentOS7:
    1.引导界面按"e"进入edit模式
    2.搜寻带有'ro','UTF-8',字样的那一段
    3.'ro'改为'rw',把rhgb quiet删除,"UTF-8"后面加 init=/bin/sh
    4.执行Ctrl+X,修改密码,之后输入exec /sbin/init即可
    CentOS6:
    1.引导界面按"e"进入edit模式
    2.在rhgb quiet后面输入single即可
//23.CentOS6和CentOS7设置开机自启服务
    CentOS7的一种方法是进入 /etc/rc.d/rc.local修改权限+x,同时写入systemctl start sshd
(按理说其他服务也可通过编写shell脚本来自启动,该文件是在引导过程中并行的执行你所写在里面的shell脚本,**不推荐!!!**)
centOS6.x简单些,使用网上的所查资料就可以解决
//24.连接Oracle数据库的莫名奇妙问题:
    查询官网得知需要将连接的url设为这样才能连接->String urlMySql = "jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL =TCP)(HOST=rac1)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(FAILOVER=on)(LOAD_BALANCE=on)(CONNECT_DATA=(SERVICE_NAME=ORCL)))";
//25.使用SQLyog链接虚拟机中centos7的mysql数据库报1045错误
    解决:管理员身份运行SQLyog
//26.没有快捷键的eclipse,代码敲起来太慢,还是使用快捷键补全更方便。
    1.打开Eclipse,点击"Window - Preferences";
    2. 在目录树上选择"Java——Editor——Content Assist",在右侧的"Auto-Activation"找到"Auto Activation triggers for java"选项;
    3."Auto Activation triggers for java"选项中,默认触发代码提示的就是"."这个符号。将"."后面加入所有的英文大小写字母,更改:.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
    4.更改完成后就可以使用快捷键,迅速敲代码了。
 //27.eclipse会联网下载“代码建议器”的东西,有时没网或有代理等情况,会失败,弹出这类提示
    解决:Window->Preferences->General->Network Connections->以上将Active Provider修改为手动方式,一般情况下不会弹出了,之后还会弹出的话,在弹出对话框选择忽略掉就OK。
 //28.开发微信公众号时,创建自定义菜单,因为是直接在代码中拼接url,没写配置文件,所以发生了一个莫名其妙的错误,后来改了之后就没了,具体原因未知(0.0)
     "https://api.weixin.qq.com/cgi-bin/menu/create?access_token="+ wxService.needGetAccessToken();微信接口出现40001错误,即accesstoken无效或超时,可能是源码页面编码格式不正确(将源码的编码格式设置为utf-8)尽量别用replace方法。
 //29.Android Studio一片爆红,代码中各种jdk和sdk的类找不到,提示setup jdk
    解决办法:点击 File->Invalidate Caches/Restart ,然后点击Invalidate and Restart
 //30.eclipse创建maven项目注意:
   elcipse没有src/main/java和src/test/java两个路径:先右击项目>Buildpath>Config...>Source去掉两个missing的路径,然后apply返回>右击项目>新建Source floder>创建两个路径
   //31.bootstrap4做前端时一个莫名奇妙的问题:当f12打开调试台后,给下拉框添加的Class看不到效果,关了f12即可
   //32.maven中配置spring报如下错误:Multiple annotations found at this line<...>
   原因:文件中的配置和我pom.xml下载的spring版本不一致导致
   解决:给我的spring配置文件中的带.xsd后缀的那一部分的版本改为我pom.xml中的版本,如果还不行,就再执行一次clean操作
   //33.解决spring配置文件和国际化资源文件不在同一个目录下路径访问不到问题:不知道可不可以用相对路径(有待测试)
文件路径未被spring读取,message_zh_CN.properties存放在src/conf包下。最后将配置message文件目录修改如下,最终问题解决
    <bean id="messageSource"
        class="org.springframework.context.support.ResourceBundleMessageSource">
        <property name="basename" value="conf/message" />
        <property name="defaultEncoding" value="UTF-8" />
        <property name="useCodeAsDefaultMessage" value="true" />
    </bean>
疑问:在加载其他资源文件<context:property-placeholder location="classpath:conf/resource.properties" ignore-unresolvable="true" />,
加入classpath是可以的,但是放到messageSource却不可以
 //34.win10修复系统组件
 搜索命令提示符,右击以管理员身份运行命令提示符,输入以下命令
 扫描映像:
 DISM.exe /Online /Cleanup-image /Scanhealth
 如果第一条命令提示存在错误,则输入以下命令,检测映像。如果无错误就输入第四条命令:
 DISM.exe /Online /Cleanup-image /Checkhealth
 修复映像:
 DISM.exe /Online /Cleanup-image /Restorehealth 
 最后检查系统并修复:
 sfc /scannow
 注意以上命令需要在正常联网的情况下使用。
 //35.win10安全中心一片空白解决办法:将下面代码复制为.reg文件执行然后重启即可。
 Windows Registry Editor Version 5.00
 [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender]
 "DisableAntiSpyware"=dword:00000000
 [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender\Real-Time Protection]
 "DisableBehaviorMonitoring"=dword:00000000
 "DisableIOAVProtection"=dword:00000000
 "DisableOnAccessProtection"=dword:00000000
 "DisableRealtimeMonitoring"=dword:00000000
 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SecurityHealthService]
 "Start"=dword:00000002
 //36.执行顺序:(优先级从高到低)静态代码块>mian方法>构造代码块>构造方法。
   其中静态代码块只执行一次。构造代码块在每次创建对象是都会执行。
 //37.Android上使用Smack踩坑:
 1.不要将所有的包导入,将一些需要的包导入即可,因为一些包在Android上会起冲突
 2.注意一些api的更新,比如setHost不能用于设置ip,需要使用setHostAddressByNameOrIp方法,否则会报空指针异常
 3.使用smack之前需要初始化
    static {
        AndroidSmackInitializer androidSmackInitializer = new AndroidSmackInitializer();
        androidSmackInitializer.initialize();
        //需要手动加载下面这个类,否则会报找不到该类的错误
        //Caused by: java.lang.ClassNotFoundException:
        //Didn't find class "org.minidns.hla.DnssecResolverApi" on path
        SmackConfiguration.addDisabledSmackClass("org.jivesoftware.smack.util.dns.minidns.MiniDnsResolver");
    }
 4.需要导入一些额外的包,比如org.jxmpp...
 //38.android在gradle出现can't connect错误:
 主要是无法链接下载网站,因为一般都是从Google、国外镜像获取的资源,所以有时很慢甚至连接不上
 解决方法:找到build.gradle(Project:你的项目名)->在该文件的!!!两个,两个都要改!!!!repositories{
  //注释掉原来的镜像
  //google()
  //jcenter()
  //改成阿里云的镜像
  maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
        maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter' }
        maven { url 'http://maven.aliyun.com/nexus/content/repositories/google' }
        maven { url 'http://maven.aliyun.com/nexus/content/repositories/gradle-plugin' }
 }
 //39.安装rationalRose
 1.参考文章:https://blog.csdn.net/yc_wj/article/details/68554168
 2.如果报错,特别是环境变量需要改变一下,将common改为Common,该文章后面的注意事项可以解决大部分问题
 3.Rational License Key Error
 报错详细信息如下:
  Failed to check out a key for rose_enterprise_windows:FLEXlm Error -2,Invalid license file syntax OR no license in file.
  FLEXlm Error -15,Cannot connect to license server.
  If you are evaluating this product,please contact your nearest Rational Software Sales office.
  For a listing,please check www.rational.com.
 解决办法:将http://files.cnblogs.com/wuxinrui/ROSECommon%E7%A0%B4%E8%A7%A3%E6%96%87%E4%BB%B6.rar解压到Common目录下替换掉两个,增加两个
 //40.java存在继承的情况下,初始化顺序为:
 父类(静态变量、静态语句块)
 子类(静态变量、静态语句块)
 父类(实例变量、普通语句块)
 父类(构造函数)
 子类(实例变量、普通语句块)
 子类(构造函数)
 //41.maven项目下classpath:
 假设资源文件放在maven工程的 src/main/resources 资源文件夹下,源码文件放在 src/main/java/, 
 那么java文件夹和resources文件夹在运行时就是classpath的真实位置,如果:
 有一个文件位于 src/main/resources/test.txt
 有一个类位于 src/main/java/com/qunar/MyClass.java
 FILE_NAME = "test.txt"
 通过如下代码:MyClass.class.getClassLoder().getResource(FILE_NAME).getPath();直接获取文件路径
 而classpath可以通过如下代码获取:MyClass.class.getClassLoder().getResource("").getPath();
 还有一种方法可以通过当前类的加载路径使用相对路径来获取资源地址:
 MyClass.class.getResource(FILE_NAME).getPath();
 那么这种就会有问题,因为此时的路径是相对于MyClass这个类在运行时路径而言的,test.txt和MyClass并不在一个层级,因为MyClass之前还有两个包
 可以如下解决:
 MyClass.class.getResource(File.separator + "FILE_NAME").getPath(); // 这种方法相当于使用绝对运行时路径
 MyClass.class.getResource(".." + File.separator + ".." + File.separator + FILE_NAME).getPath(); // 这种方法相当于使用相对MyClass的运行时路径
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值