Android O,AOSP。我试图在frameworks/base
中的应用程序中使用HIDL java库。
根据the documentation,我已将HIDL添加到Android.mk
文件中:
LOCAL_JAVA_LIBRARIES := vendor.myvendor.mylibrary-V1.0-java
在MainActivity.java
中,我包含它并尝试使用:
import vendor.myvendor.mylibrary.V1_0.IGood;
public class MainActivity extends Activity {
public void onCreate(Bundle b) {
super.onCreate(b);
IGood service;
}
}
此代码编译时没有任何错误。但是当我尝试访问某些方法时,例如:
import vendor.myvendor.mylibrary.V1_0.IGood;
public class MainActivity extends Activity {
public void onCreate(Bundle b) {
super.onCreate(b);
IGood service = IGood.getService();
}
}
我收到错误:
error: cannot access IBase
IGood server = IGood.getService();
^
class file for android.hidl.base.V1_0.IBase not found
答案 0 :(得分:0)
解决方案是添加到Android.mk
以下行:
LOCAL_STATIC_JAVA_LIBRARIES := android.hidl.base-V1.0-java-static
此外,在此之后我又遇到了另一个错误:由于proguard,它没有编译。在我的情况下,我不得不禁用它:
LOCAL_PROGUARD_ENABLED := disabled
否则,需要创建一个proguard配置并添加与HIDL相关的所有.jar
。
之后一切正常。