提问人:Chao Jiang 提问时间:9/12/2023 更新时间:10/7/2023 访问量:102
基于 AIDL 的 HAL 无法生成 java
AIDL based HAL cannot generate java
问:
我尝试使用 AIDL 实现供应商 HAL,但它无法生成 java,下面是 Android.bp 和 aidl 文件,它无法成功编译
请把我打死
安卓.bp
aidl_interface {
name: "android.hardware.weather",
vendor: true,
srcs: ["android/hardware/weather/*.aidl"],
stability: "vintf",
owner: "jiangc",
backend: {
cpp: {
enabled: false,
},
},
}
艾德尔
@VintfStability
interface IWeather{
String getWeather();
void setCity(in String city);
}
错误
[ 45% 5/11] //vendor/jiangc/hardware/interfaces/automotive/vehicle/aidl/weather:android.hardware.weather-V1-java javac [common]
FAILED: out/soong/.intermediates/vendor/jiangc/hardware/interfaces/automotive/vehicle/aidl/weather/android.hardware.weather-V1-java/android_common/javac/android.hardware.weather-V1-java.jar
rm -rf "out/soong/.intermediates/vendor/jiangc/hardware/interfaces/automotive/vehicle/aidl/weather/android.hardware.weather-V1-java/android_common/javac/classes" "out/soong/.intermediates/vendor/jiangc/hardware/
interfaces/automotive/vehicle/aidl/weather/android.hardware.weather-V1-java/android_common/javac/anno" "out/soong/.intermediates/vendor/jiangc/hardware/interfaces/automotive/vehicle/aidl/weather/android.hardware
.weather-V1-java/android_common/javac/srcjars" "out/soong/.intermediates/vendor/jiangc/hardware/interfaces/automotive/vehicle/aidl/weather/android.hardware.weather-V1-java/android_common/javac/android.hardware.w
eather-V1-java.jar" && mkdir -p "out/soong/.intermediates/vendor/jiangc/hardware/interfaces/automotive/vehicle/aidl/weather/android.hardware.weather-V1-java/android_common/javac/classes" "out/soong/.intermediate
s/vendor/jiangc/hardware/interfaces/automotive/vehicle/aidl/weather/android.hardware.weather-V1-java/android_common/javac/anno" "out/soong/.intermediates/vendor/jiangc/hardware/interfaces/automotive/vehicle/aidl
/weather/android.hardware.weather-V1-java/android_common/javac/srcjars" && out/host/linux-x86/bin/zipsync -d out/soong/.intermediates/vendor/jiangc/hardware/interfaces/automotive/vehicle/aidl/weather/android.har
dware.weather-V1-java/android_common/javac/srcjars -l out/soong/.intermediates/vendor/jiangc/hardware/interfaces/automotive/vehicle/aidl/weather/android.hardware.weather-V1-java/android_common/javac/srcjars/list
-f "*.java" && (if [ -s out/soong/.intermediates/vendor/jiangc/hardware/interfaces/automotive/vehicle/aidl/weather/android.hardware.weather-V1-java/android_common/javac/srcjars/list ] || [ -s out/soong/.interm
ediates/vendor/jiangc/hardware/interfaces/automotive/vehicle/aidl/weather/android.hardware.weather-V1-java/android_common/javac/android.hardware.weather-V1-java.jar.rsp ] ; then out/host/linux-x86/bin/soong_java
c_wrapper prebuilts/jdk/jdk11/linux-x86/bin/javac -J-Xmx2048M -J-XX:OnError="cat hs_err_pid%p.log" -J-XX:CICompilerCount=6 -J-XX:+UseDynamicNumberOfGCThreads -J-XX:+TieredCompilation -J-XX:TieredStopAtLevel=1 -X
maxerrs 9999999 -encoding UTF-8 -sourcepath "" -g -XDskipDuplicateBridges=true -XDstringConcat=inline -proc:none -Xlint:-dep-ann --system=out/soong/.intermediates/build/soong/java/core-libraries/core-public-stu
bs-system-modules/android_common/system -classpath out/soong/.intermediates/frameworks/base/android_system_stubs_current/android_common/turbine-combined/android_system_stubs_current.jar -source 11 -target 11 -d
out/soong/.intermediates/vendor/jiangc/hardware/interfaces/automotive/vehicle/aidl/weather/android.hardware.weather-V1-java/android_common/javac/classes -s out/soong/.intermediates/vendor/jiangc/hardware/interfa
ces/automotive/vehicle/aidl/weather/android.hardware.weather-V1-java/android_common/javac/anno @out/soong/.intermediates/vendor/jiangc/hardware/interfaces/automotive/vehicle/aidl/weather/android.hardware.weather
-V1-java/android_common/javac/android.hardware.weather-V1-java.jar.rsp @out/soong/.intermediates/vendor/jiangc/hardware/interfaces/automotive/vehicle/aidl/weather/android.hardware.weather-V1-java/android_common/
javac/srcjars/list ; fi ) && out/host/linux-x86/bin/soong_zip -jar -o out/soong/.intermediates/vendor/jiangc/hardware/interfaces/automotive/vehicle/aidl/weather/android.hardware.weather-V1-java/android_common/ja
vac/android.hardware.weather-V1-java.jar -C out/soong/.intermediates/vendor/jiangc/hardware/interfaces/automotive/vehicle/aidl/weather/android.hardware.weather-V1-java/android_common/javac/classes -D out/soong/.
intermediates/vendor/jiangc/hardware/interfaces/automotive/vehicle/aidl/weather/android.hardware.weather-V1-java/android_common/javac/classes && rm -rf "out/soong/.intermediates/vendor/jiangc/hardware/interfaces
/automotive/vehicle/aidl/weather/android.hardware.weather-V1-java/android_common/javac/srcjars"
out/soong/.intermediates/vendor/jiangc/hardware/interfaces/automotive/vehicle/aidl/weather/android.hardware.weather-V1-java-source/gen/android/hardware/weather/IWeather.java:46: error: cannot find symbol
this.markVintfStability();
^
symbol: method markVintfStability()
1 error
16:18:59 ninja failed with: exit status 1
#### failed to build some targets (15 seconds) ####
我尝试禁用 Java,它工作正常,但我现在需要它
安卓.bp
aidl_interface {
name: "android.hardware.weather",
vendor: true,
srcs: ["android/hardware/weather/*.aidl"],
stability: "vintf",
owner: "jiangc",
backend: {
cpp: {
enabled: false,
},
java: {
enabled: false,
},
},
}
如上所述,它编译良好
答:
0赞
lashwang
10/7/2023
#1
删除稳定性并添加不稳定:true
aidl_interface {
name: "android.hardware.weather",
unstable: true
vendor: true,
srcs: ["android/hardware/weather/*.aidl"],
stability: "vintf",
owner: "jiangc",
backend: {
cpp: {
enabled: false,
},
},
}
0赞
tonykwok
11/29/2023
#2
在:frameworks/base/core/java/android/os/Binder.java
public class Binder implements IBinder {
...
@SystemApi(client = SystemApi.Client.PRIVILEGED_APPS)
public final native void markVintfStability();
...
}
的方法被注释,这意味着您需要添加到您的文件中,如下所示:markVintfStability
@SystemApi
platform_apis: true
Android.bp
aidl_interface {
name: "android.hardware.weather",
vendor: true,
srcs: ["android/hardware/weather/*.aidl"],
stability: "vintf",
owner: "jiangc",
backend: {
java: {
platform_apis: true,
},
cpp: {
enabled: false,
},
},
}
注意
评论