错误:找不到android.hidl.base.V1_0.IBase的IBase类文件

时间:2017-11-10 07:15:49

标签: android android-source

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

1 个答案:

答案 0 :(得分:0)

解决方案是添加到Android.mk以下行:

LOCAL_STATIC_JAVA_LIBRARIES := android.hidl.base-V1.0-java-static

此外,在此之后我又遇到了另一个错误:由于proguard,它没有编译。在我的情况下,我不得不禁用它:

LOCAL_PROGUARD_ENABLED := disabled

否则,需要创建一个proguard配置并添加与HIDL相关的所有.jar

之后一切正常。