Android12系统属性在mk文件上添加,在编译user版本的时候不会生效
时间: 2024-03-04 09:52:25 浏览: 10
可能的原因有以下几个:
1. 系统属性的定义位置不正确。在mk文件中定义系统属性需要放在`PRODUCT_PROPERTY_OVERRIDES`变量中,如果没有正确放置可能会导致属性无法生效。
2. 编译时使用的mk文件不正确。在编译user版本时需要使用`build/target/product/user.mk`文件,如果使用了其他版本的mk文件可能会导致属性无法生效。
3. 编译时使用了缓存的配置。在编译过程中可能会使用之前缓存的配置文件,导致新添加的系统属性无法生效。可以尝试清空缓存再进行编译。
4. 系统属性被其他配置覆盖。如果其他配置文件中定义了相同名称的系统属性,可能会导致新添加的属性无法生效。可以检查其他配置文件中是否存在相同的属性定义。
综上所述,可能的解决方法包括:检查系统属性的定义位置、使用正确的mk文件、清空缓存再编译、检查其他配置文件中是否存在相同的属性定义。
相关问题
Android12系统属性在在rk3588s_s.mk文件上添加,在编译user版本的时候不会生效
在`rk3588s_s.mk`文件中添加系统属性需要放在`PRODUCT_PROPERTY_OVERRIDES`变量中,如下示例:
```
PRODUCT_PROPERTY_OVERRIDES += \
my_property=1 \
my_property2=hello \
my_property3=true
```
如果你已经按照上述方法添加了系统属性,但编译user版本时仍然无法生效,可能有以下几个原因:
1. 编译时使用了缓存的配置。在编译过程中可能会使用之前缓存的配置文件,导致新添加的系统属性无法生效。可以尝试清空缓存再进行编译。
2. 用户版本编译时使用的mk文件不正确。在编译user版本时需要使用`build/target/product/user.mk`文件,如果使用了其他版本的mk文件可能会导致属性无法生效。
3. 系统属性被其他配置覆盖。如果其他配置文件中定义了相同名称的系统属性,可能会导致新添加的属性无法生效。可以检查其他配置文件中是否存在相同的属性定义。
综上所述,可能的解决方法包括:清空缓存再编译、使用正确的mk文件、检查其他配置文件中是否存在相同的属性定义。
构建系统解析此 Android.mk 文件时怎么区分android12及以上版本
在构建系统解析 Android.mk 文件时,可以使用 `$PLATFORM_VERSION` 变量来获取当前 Android 平台的版本号,这个版本号是一个整数值。因此,您可以使用类似如下的条件语句来区分 Android 12 及以上版本:
```
ifeq ($(PLATFORM_VERSION),$(filter $(PLATFORM_VERSION),30 31))
# This is Android 12 or later
# Add your rules here
else
# This is an earlier version of Android
# Add your rules here
endif
```
在上述示例中,`$(filter $(PLATFORM_VERSION),30 31)` 函数会判断当前的 Android 平台版本号是否等于 30 或者 31,如果是,则说明当前版本为 Android 12 或者 Android 12 以上版本,您可以在此处添加您的规则。如果当前版本不是 Android 12 及以上版本,则会执行 `else` 语句块中的规则。
注意,这只是一个示例,实际情况可能会根据您的项目和需求而有所不同。