autojs常见报错及解决

期待大家在下面评论补充.

*@更多基础加autojs交流群553908361喽;
一键加群:点击加群
1.需要在ui模式下运行才能使用该函数 (file:///android_asset/modules/ui.js#15)
Error: 需要在ui模式下运行才能使用该函数

很直观的报错.没有开启ui模式的情况下用了ui 解决方案是加上

"ui";

2.is not a function, it is object.

中文翻译.不是函数,而是对象。这个时候也简单.一般是由于代码格式错了).

检查下代码就好了.但是也可能是没加上"ui";的原因

说句题外话,joy.dex方式有时候就会这样提示(或者提示activity
).加

“ui”;就好了

另外需要用到识图功能的时候,记得加上

//申请截图权限,只需要申请一次即可
requestScreenCapture()  

3.Wrapped com.stardust.pio.UncheckedIOException: java.io.FileNotFoundException: /storage/emulated/0/脚本/测试1/1.dex

原因:没找到1.dex这个文件.或者是没找到1.dex里的类.检查一下文件即可.

2021.4.11更新一个方法.对这种英文报错的,往往可以

先直接用百度翻译一下.

就知道大概意思了.

象modules(模板)报错的

往往是这些类

ui报错.请检查开头是否写了"ui";

threads线程报错.可以参考点击这里

storages.存储模块.

images .图色模块.实例参考点这里.快速开发图色辅助

http.这个网络模块.常见的就是耗时联网没放在线程里使用导致

报错.给一个云端更新的实例吧

let scriptName ="1"//脚本名
http.__okhttp__.setTimeout(10000)
//设置联网超时为10s
threads.start(function () {
var url = "http://代码地址"
	let res = http.get(url)
	if (res.statusCode != 200) {
		log(res.statusCode)
		toastLog('下载失败')
		exit()
	}
	let codeStr = res.body.string()
	engines.execScript(scriptName, codeStr)
	engines.myEngine().forceStop()
})

app.这个一般是没有安装该app,但是使用了

launchApp(“应用名”);造成的.安装上就好了.注意区分

launchApp(“微信”), launch(“com.tencent.mm”);前面是app名字,

后面是包名

还有个是crypto报错.这个是什么呢.aes加解密的问题.直接放一个加解密的代码吧

//该代码由不知名的群友提供.我们的群号为.553908361
let message = "加密数据在这里";
log("明文: ", message);
// 密钥,由于AES等算法要求是16位的倍数,我们这里用一个16位的密钥
let key = new $crypto.Key("password12345678");
log("密钥: ", key);
// AES加密
let aes = $crypto.encrypt(message, key, "AES/ECB/PKCS5padding");
log("AES加密后二进制数据: ", aes);
log("AES解密: ", $crypto.decrypt(aes, key, "AES/ECB/PKCS5padding", {output: 'string'}));
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐