如何设置字段私有布尔值设置为真?

问题描述

当我设置真值但出错时,这段代码有什么问题

原创

".field private isPro:Z"

我的套装

'''.field private isPro:Z=true'''

解决方法

在 smali/dalvik "Z" 的意思是 "boolean",在你的例子中它只定义了 类型,而不是 >价值

.field private isPro:Z

"Z" 更改为 "true" 将不起作用,因为 "true" 它不是有效类型。 如果要更改其值,则需要搜索变量isPro 的使用位置,并将0x0(假)更改/覆盖为0x1 >(真)。

,

您应该在构造函数或任何方法中使用iput-boolean,而不是在定义字段时直接赋值。

.field private isPro:Z
#assign value
const/4 v0,0

iput-boolean v0,p0,Lcom/example/YourClassPath;->isPro:Z


顺便说一句,直接分配仅适用于 static 字段,如下所示

# not 0 not 1
.field private static isPro:Z = true