新的某一天,新的报错
TN的又报错。
终于准备写自己的项目,把idea上的java代码粘贴到Android上来,就是一个爬虫程序,准备把爬到的数据展现到Activity上。
1. 哐哐一顿粘,然后就报了cant resolve symbal的错误,就是找不到
import javax.script.Invocable;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
这些类,如果百度搜cant resolve symbol的话是搜不出结果的。因为这是android studio和rt.jar这个jar包之间的恩怨。
通过后面的学习可以提前发现,android会把java的rt.jar的方法用自己的sdk里的某个jar包的同名方法来替代:
有些方法是没有收录进去的,收录进去了的也有能使用的最低sdk版本的限制。所以同在一个jar包下的Path就可以找到,Invocable就找不到。然后在百度上经历了一阵混乱迷离的搜索之后我发现只要这样:
Android studio就会综合考虑这两个jar包。然后编译就没有什么问题了。
然后直接点击运行键,这里省略崩出来的一大堆错误,上网一查发现好家伙,gradle version 、gradle plunge version、android build tools这3个东西的版本还有依赖关系too。然后上网查一下依赖的关系,调整一下就可以了,直接在build.gradle里面修改在sync就可以直接下载了,感觉还挺快的,不知道是从哪里下的。
2.现在可以开始点击激动人心的运行键了,但是我怎么突然发现设备不见了,有错误不停在滚动:
诶,我设备呢?。。。
这里又是一个极坑的错误,如果你去百度上搜**Adb connection Error:远程主机强迫关闭了一个现有的连接。**
,大部分都是叫你去看5037端口,看到几个pid之后再分别去看pid对应的进程名字,看是不是友军,如果不是就杀掉,然后总会发现不是,然后杀掉就完了。
但是我看5037端口的话,除了studio64.exe一直坚持运行之外,其他的pid总是不等我去查他们的进程名字就消失了,然后重查又蹦出新的进程。有人说查叫adb.exe的文件,我查了没发现什么问题:
然后有的进程会把studio64挤掉,然后他又顽强的连上来,再看着这些进程打架若干分钟后,终于稳定在只有两个固定进程的局面,一个是studio64.exe,一个是nox_adb.exe:
这时候解决找不到设备问题的契机就出现了,这个地方会从loading device字样变成一个红色有感叹号的手机图标:(我已经用后面的方法弄好了)
然后点击这里会看到一行min sdk version(26) > device version(25)
,差不多是这样的语句,然后好像有点懂了,到build.gradle改一下minSdkVersion
为25
然后这个图标马上就变绿了。
3.然后连锁反应就出现了,我的get方法找不到了:minSdkVersion
就需要是26,不然在一些没到这个版本的手机上就无法使用这个方法。所以为了兼顾问题2就只能提升device sdk的版本了,随便上网一查:啦啦啦,然后就解决啦啦啦~( ̄︶ ̄)↗ 晚安,打工人
本文地址:https://blog.csdn.net/qq_44842466/article/details/109633322