代码之家  ›  专栏  ›  技术社区  ›  Vitalii Dmitriev

错误:无法访问android的IBase类文件。hidl。基础V1_0。未找到IBase

  •  1
  • Vitalii Dmitriev  · 技术社区  · 7 年前

    Android O,AOSP。我试图在中的应用程序中使用HIDL java库 frameworks/base .

    根据 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 回复  |  直到 7 年前
        1
  •  0
  •   Vitalii Dmitriev    7 年前

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

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

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

    LOCAL_PROGUARD_ENABLED := disabled
    

    否则,需要创建proguard配置并添加所有 .jar s、 与HIDL相关。

    在那之后,一切都正常了。