在AOSP中修改SDK API

9
我正在尝试修改AOSP(主分支)中的FingerprintGestureController API,使其返回布尔值而不是void类型,但即使重新编译了SDK,我仍然在构建项目时遇到错误。
错误信息如下:
FAILED: out/target/common/obj/PACKAGING/checkpublicapi-last-timestamp
/bin/bash -c "(( out/host/linux-x86/bin/apicheck -JXmx1024m -J\"classpath /usr/lib/jvm/java-8-openjdk-amd64/bin/../lib/tools.jar:out/host/linux-x86/framework/doclava.jar:out/host/linux-x86/framework/jsilver.jar\"  -hide 2 -hide 3 -hide 4 -hide 5 -hide 6 -hide 24 -hide 25 -hide 26 -hide 27 -error 7 -error 8 -error 9 -error 10 -error 11 -error 12 -error 13 -error 14 -error 15 -error 16 -error 17 -error 18   prebuilts/sdk/api/26.txt  out/target/common/obj/PACKAGING/public_api.txt  frameworks/base/api/removed.txt  out/target/common/obj/PACKAGING/removed.txt || (  cat build/core/apicheck_msg_last.txt ; exit 38 ) ) ) && (mkdir -p out/target/common/obj/PACKAGING/ ) && (touch out/target/common/obj/PACKAGING/checkpublicapi-last-timestamp )"
out/target/common/obj/PACKAGING/public_api.txt:2874: error 16: Method android.accessibilityservice.FingerprintGestureController.FingerprintGestureCallback.onGestureDetected(int) has changed return type from Primitive?: true TypeVariable?: false Wildcard?: false Dimension:  QualifedTypeName: void to Primitive?: true TypeVariable?: false Wildcard?: false Dimension:  QualifedTypeName: boolean

******************************
You have tried to change the API from what has been previously released in
an SDK.  Please fix the errors listed above.
******************************

我编译的步骤如下:

lunch sdk-eng
make update-api   //Success
make sdk         //Success
lunch 1
make -j10      //Errors out here

请问有人可以指导我如何在源代码中更改Android发布的SDK API并编译Android吗?


onGestureDetected是一个接口回调。将它作为布尔类型返回并尝试阻塞方法调用,你能获得什么目的? - OneCricketeer
我想要找出接收指纹手势回调的应用程序是否已经消耗了事件,类似于View的onTouch事件。 - user531069
为什么不呢?如果设备没有指纹传感器呢? - OneCricketeer
指纹回调通过无障碍服务传递。这意味着即使应用程序不在前台,它也可以接收回调。假设某个应用程序只有在前台时才希望使用指纹手势,则在此情况下才对其进行处理,否则将其传递。例如:如果相机在前台,则只有滑动才会从相机切换到视频模式并表示已经使用,否则它可以返回未使用,并由系统处理滑动以切换通知栏。 - user531069
你解决了这个问题吗? - Hitesh Sahu
2个回答

3

您需要确保以下文件已经根据您的方法签名更改进行了更新:

/frameworks/base/api/current.txt
/frameworks/base/api/system-current.txt
/frameworks/base/api/test-current.txt

这些文件已经更新并显示了更新后的API。我还提到了make update-api和make sdk都成功了。 - user531069

0

再给你一个提示:在执行make update-api之前,你是否已经修改了api/26.txt文件以反映你的API更改?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接