6.6.2 - Alpha5 - 修复布局分析页面生成代码时可能导致的应用崩溃 (issue #288)
This commit is contained in:
@@ -17,7 +17,9 @@
|
|||||||
"engines.execScript/execScriptFile 等方法执行脚本时默认工作路径异常",
|
"engines.execScript/execScriptFile 等方法执行脚本时默认工作路径异常",
|
||||||
"floaty.window/floaty.rawWindow 无法在子线程执行的问题",
|
"floaty.window/floaty.rawWindow 无法在子线程执行的问题",
|
||||||
"ui.inflate 返回值丢失 attr/on/click 等原型方法的问题",
|
"ui.inflate 返回值丢失 attr/on/click 等原型方法的问题",
|
||||||
"代码编辑器跳转到行尾时可能跳转到下一行起始位置的问题"
|
"布局分析页面生成代码时可能导致应用崩溃的问题 _[`issue #288`](http://issues.autojs6.com/288)_",
|
||||||
|
"代码编辑器跳转到行尾时可能跳转到下一行起始位置的问题",
|
||||||
|
"设置页面连续快速点击对话框类型项目时可能导致应用崩溃的问题"
|
||||||
],
|
],
|
||||||
"improvement": [
|
"improvement": [
|
||||||
"精简打包应用模板 APK 文件大小",
|
"精简打包应用模板 APK 文件大小",
|
||||||
|
|||||||
@@ -416,7 +416,7 @@ open class ApkBuilder(apkInputStream: InputStream?, private val outApkFile: File
|
|||||||
private fun copyLibrariesByAbi(abiSrcName: String, abiDestName: String) {
|
private fun copyLibrariesByAbi(abiSrcName: String, abiDestName: String) {
|
||||||
|
|
||||||
// @Reference to LZX284 (https://github.com/LZX284) by SuperMonster003 on Dec 11, 2023.
|
// @Reference to LZX284 (https://github.com/LZX284) by SuperMonster003 on Dec 11, 2023.
|
||||||
// ! https://github.com/SuperMonster003/AutoJs6/pull/187/files#diff-d932ac49867d4610f8eeb21b59306e8e923d016cbca192b254caebd829198856R61
|
// ! http://pr.autojs6.com/187/files#diff-d932ac49867d4610f8eeb21b59306e8e923d016cbca192b254caebd829198856R61
|
||||||
val srcLibDir = File(appApkFile.parent, LIBRARY_DIR).path
|
val srcLibDir = File(appApkFile.parent, LIBRARY_DIR).path
|
||||||
|
|
||||||
mLibsIncludes.distinct().forEach { libName ->
|
mLibsIncludes.distinct().forEach { libName ->
|
||||||
|
|||||||
@@ -533,7 +533,12 @@ open class UiObject(
|
|||||||
if (this === other) return true
|
if (this === other) return true
|
||||||
if (other !is UiObject) return false
|
if (other !is UiObject) return false
|
||||||
|
|
||||||
return packageName() == other.packageName() &&
|
// @Reference to Hunter1023 (https://github.com/Hunter1023) by SuperMonster003 on Mar 28, 2025.
|
||||||
|
// ! http://issues.autojs6.com/288#issuecomment-2692248348
|
||||||
|
val info = unwrap() ?: return false
|
||||||
|
|
||||||
|
return info == other.unwrap() &&
|
||||||
|
packageName() == other.packageName() &&
|
||||||
parent == other.parent &&
|
parent == other.parent &&
|
||||||
id() == other.id() &&
|
id() == other.id() &&
|
||||||
fullId() == other.fullId() &&
|
fullId() == other.fullId() &&
|
||||||
@@ -730,7 +735,7 @@ open class UiObject(
|
|||||||
}
|
}
|
||||||
|
|
||||||
in RESULT_GROUP_EXISTENCE -> when (compass) {
|
in RESULT_GROUP_EXISTENCE -> when (compass) {
|
||||||
null, COMPASS_PASS_ON -> selector?.exists() ?: false
|
null, COMPASS_PASS_ON -> selector?.exists() == true
|
||||||
else -> getUiObject() != null
|
else -> getUiObject() != null
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -863,7 +868,7 @@ open class UiObject(
|
|||||||
private val cString = String::class.java
|
private val cString = String::class.java
|
||||||
private val cBoolean = Boolean::class.java
|
private val cBoolean = Boolean::class.java
|
||||||
|
|
||||||
internal val interceptedMap: Map<String, Intercepted> by lazy {
|
val interceptedMap: Map<String, Intercepted> by lazy {
|
||||||
val numberClassMap: Map<Array<out Class<*>>, Array<String>> = mapOf(
|
val numberClassMap: Map<Array<out Class<*>>, Array<String>> = mapOf(
|
||||||
arrayOf(cIntPrim) to arrayOf(
|
arrayOf(cIntPrim) to arrayOf(
|
||||||
"child", "getChild", "performAction", "setDrawingOrder", "setInputType",
|
"child", "getChild", "performAction", "setDrawingOrder", "setInputType",
|
||||||
@@ -918,7 +923,7 @@ open class UiObject(
|
|||||||
}.flatten().associateBy { it.name }
|
}.flatten().associateBy { it.name }
|
||||||
}
|
}
|
||||||
|
|
||||||
internal fun has(name: String) = interceptedMap.containsKey(name)
|
fun has(name: String) = interceptedMap.containsKey(name)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -52,6 +52,15 @@ open class MaterialDialogPreference : MaterialPreference {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun onClick() {
|
override fun onClick() {
|
||||||
|
|
||||||
|
// @Hint by SuperMonster003 on Mar 27, 2025.
|
||||||
|
// ! Avoid rapid consecutive clicks to prevent the app from crashing.
|
||||||
|
// ! zh-CN: 避免连续快速点击可能导致应用崩溃.
|
||||||
|
// # java.lang.IllegalArgumentException:
|
||||||
|
// # LayoutManager androidx.recyclerview.widget.LinearLayoutManager@xxx
|
||||||
|
// # is already attached to a RecyclerView: androidx.recyclerview.widget.RecyclerView{...}
|
||||||
|
if (::mDialog.isInitialized && mDialog.isShowing) return
|
||||||
|
|
||||||
getBuilder().build().also { mDialog = it }.show()
|
getBuilder().build().also { mDialog = it }.show()
|
||||||
super.onClick()
|
super.onClick()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
#Thu Mar 27 19:59:19 CST 2025
|
#Fri Mar 28 10:17:08 CST 2025
|
||||||
BUILD_TIME=1743076759401
|
BUILD_TIME=1743128228067
|
||||||
COMPILE_SDK_VERSION=35
|
COMPILE_SDK_VERSION=35
|
||||||
JAVA_VERSION=23
|
JAVA_VERSION=23
|
||||||
JAVA_VERSION_MIN_RADICAL=0
|
JAVA_VERSION_MIN_RADICAL=0
|
||||||
@@ -17,6 +17,6 @@ RAPID_OCR_OPENCV_MOBILE_LABEL_VERSION=13
|
|||||||
RAPID_OCR_OPENCV_MOBILE_VERSION=4.5.3
|
RAPID_OCR_OPENCV_MOBILE_VERSION=4.5.3
|
||||||
TARGET_SDK_VERSION=35
|
TARGET_SDK_VERSION=35
|
||||||
TARGET_SDK_VERSION_INRT=29
|
TARGET_SDK_VERSION_INRT=29
|
||||||
VERSION_BUILD=3065
|
VERSION_BUILD=3066
|
||||||
VERSION_NAME=6.6.2 Alpha5
|
VERSION_NAME=6.6.2 Alpha5
|
||||||
VSCODE_EXT_REQUIRED_VERSION=1.0.8
|
VSCODE_EXT_REQUIRED_VERSION=1.0.8
|
||||||
|
|||||||
Reference in New Issue
Block a user