当前位置:网站首页>Autojs学习笔记6:text(txt).findOne()切换app时会报错,最后解决实现效果,切换任何app直到脚本找到指定的txt文字的控件进行点击。

Autojs学习笔记6:text(txt).findOne()切换app时会报错,最后解决实现效果,切换任何app直到脚本找到指定的txt文字的控件进行点击。

2022-06-12 09:20:00 PYB3

申明本人使用的autojs是4.1.1版本

目录

使用text(txt).findOne()导致报错

核心代码

疑问

解决方法及代码

结论


使用text(txt).findOne()导致报错

workbench.desktop.main.js:71 [Extension Host] 10:18:49.662/E: Wrapped java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.CharSequence android.view.accessibility.AccessibilityNodeInfo.getPackageName()' on a null object reference ([remote]xfj.js#138)Wrapped java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.CharSequence android.view.accessibility.AccessibilityNodeInfo.getPackageName()' on a null object reference    at 领取 ([remote]xfj.js:138:0)    at [remote]xfj.js:54:0    at file:///android_asset/modules/__bridges__.js:10:0

核心代码

ui.callbackBtn.click(()=>{
   领取()
});

function 领取(){
   var b = false;
    if(点击目标控件和时间("领取",0)){
        b = true;
        toastLog("成功点击")
    }else{
        log("未找到点击按钮")
    }
    return b 
}

 /**
 * @param {控件内容} txt 
 * @param {时间} kjTime 
 * @returns true 找到并处理
 */
  function 点击目标控件和时间(txt,kjTime){
      var srk1;
      if(kjTime==0){
        srk1 = text(txt).findOne();
      }else{
        srk1 = text(txt).findOne(kjTime);
      }
      if(srk1!=null){
          srk1 = srk1.bounds();
          click(srk1.centerX(), srk1.centerY());
          return true;
      }else{
           return false;
       }
 }

疑问

正常情况 代码里的这行 srk1 = text(txt).findOne(); 没找到相关描述的控件就一直阻塞,但如果立马切换到其它app就会报错。(切换到系统界面是正常的)。

使用findOnce()函数也是一样的报错。

解决方法及代码

利用try catch思路来解决!

function 领取(){
   var b = false;
       try{
           if(点击目标控件和时间("领取",0)){
               b = true;
               toastLog("成功点击")
           }else{
               log("未找到点击按钮")
           }
       }catch(err){
           log("报错了!!!!")
           领取();//报错我就重新调用
       }
   return b
}

结论

使用text(txt).findOne()或是text(txt).findOnce() 只要切换app就会立马报错(测试时,我是人为切换app)。

原网站

版权声明
本文为[PYB3]所创,转载请带上原文链接,感谢
https://blog.csdn.net/piyangbo/article/details/124999201