前言:

对于这两个变量,虽然在之前就在编译系统中出现了,但是在Android P 中编译Java的时候多了一个check 步骤,即sdk_check.mk

 

先来看下java.mk:

在编译java 文件的时候都会进行check,来看下代码:

whitelisted_modules := framework-res__auto_generated_rroifeq (,$(JAVA_SDK_ENFORCEMENT_ERROR))  JAVA_SDK_ENFORCEMENT_ERROR := APPSendififeq ($(LOCAL_SDK_VERSION)$(LOCAL_PRIVATE_PLATFORM_APIS),)  ifeq (,$(filter $(LOCAL_MODULE),$(whitelisted_modules)))    ifneq ($(JAVA_SDK_ENFORCEMENT_WARNING)$(JAVA_SDK_ENFORCEMENT_ERROR),)      my_message := Must specify LOCAL_SDK_VERSION or LOCAL_PRIVATE_PLATFORM_APIS,      ifeq ($(LOCAL_MODULE_CLASS),$(JAVA_SDK_ENFORCEMENT_ERROR))        $(call pretty-error,$(my_message))      endif      ifeq ($(LOCAL_MODULE_CLASS),$(JAVA_SDK_ENFORCEMENT_WARNING))        $(call pretty-warning,$(my_message))      endif      my_message :=    endif  endifelse ifneq ($(LOCAL_SDK_VERSION),)  ifneq ($(LOCAL_PRIVATE_PLATFORM_APIS),)    my_message := Specifies both LOCAL_SDK_VERSION ($(LOCAL_SDK_VERSION)) and    my_message += LOCAL_PRIVATE_PLATFORM_APIS ($(LOCAL_PRIVATE_PLATFORM_APIS))    my_message += but should specify only one    $(call pretty-error,$(my_message))    my_message :=  endifendif

需要在编译的mk 中添加两个变量中的一个LOCAL_SDK_VERSION 和 LOCAL_PRIVATE_PLATFORM_APIS。

如果这两个变量没有定义,那么编译的时候就会报错:

  [sshexec] vendor/commons/packages/apps/PhoneManager/Android.mk: error: PhoneManager: Must specify LOCAL_SDK_VERSION or LOCAL_PRIVATE_PLATFORM_APIS,   [sshexec] build/make/core/sdk_check.mk:21: error: done.

 

注意:

  • 这两个变量必须定义其中一个
  • 除非该LOCAL_MODULE 在白名单中(一般不会去修改源生的 mk)
  • 这两个变量只能定义一个,不能同时定义

 

对于变量LOCAL_SDK_VERSION 之前一直会使用,标记SDK 的version 状态,值为current system_current test_current core_current 其中一个。

对于使用系统@hide api的,我们默认可以设置 LOCAL_PRIVATE_PLATFORM_APIS 为true即可。

 

 

更多相关文章

  1. Android程序 依赖库引用Gson 报java.lang.NoClassDefFoundError:
  2. 打造自己的Android源码学习环境之五:编译Android源代码
  3. HTC one/M7电信802d 毒蛇ViperOne2.1.0/高级毒蛇工具/完美root,
  4. [Android从头再来]Android(安卓)JNI相关开发
  5. android自定义View、ViewGroup
  6. Android(安卓)5.0 Binder编译问题及解决方案
  7. android自定义视图属性学习
  8. Android中电池信息(Battery information)的取得
  9. Android(安卓)Studio重写方法时参数显示异常的解决方法

随机推荐

  1. Android(安卓)- 如何将两个/多个应用放到
  2. android系统移植要点之二--以6410为例
  3. android adb 环境变量配置
  4. [Phonegap+Sencha Touch] 移动开发54 初
  5. Android(安卓)效率开发之图片旋转处理
  6. android 程序错误全局处理
  7. android 电池(一):锂电池基本原理篇
  8. 在Android中使用SharedPreferences保存简
  9. Android(安卓)Content Provider(内容提供
  10. Android(安卓)Debug Bridge(adb)