Использование файла AIDL в другом модуле приложения

У меня есть один вспомогательный интерфейс, и этот реализован приложением A, а приложение B хочет использовать этот вспомогательный интерфейс. В приложении Android.mk

LOCAL_SRC_FILES += src/com/a/simple/ISimpleInterface.aidl

LOCAL_AIDL_INCLUDES += src/com/a/simple/ISimpleInterface.aidl

В приложении B я только что импортировал интерфейс помощи, как показано ниже.

import com.a.ISimpleInterface;

Но при сборке модуля для приложения B выдается ошибка типа «com.a не может быть разрешен».


person Manukumar    schedule 18.12.2018    source источник


Ответы (1)


LOCAL_AIDL_INCLUDES — это каталог, а не файл. Кроме того, он не наследует $(LOCAL_PATH). Итак, вам, вероятно, нужно установить

LOCAL_AIDL_INCLUDES += $(A_APP_PATH)/src
person Alex Cohn    schedule 19.12.2018
comment
Добавил то, что вы предложили, но все же другое приложение не может использовать помощь. - person Manukumar; 20.12.2018
comment
«Другое» приложение должно видеть файлы помощи, а не источник. Я исправил ответ, чтобы сделать его более понятным. - person Alex Cohn; 20.12.2018
comment
У вас есть ссылка на документацию для переменной LOCAL_AIDL_INCLUDES? Из этот ответ я обнаружил, что он может быть из android.googlesource.com/platform/build/+/master/core/ - person TT--; 02.05.2019
comment
С августа 2015 г. этот код был перемещен из base_rules.mk. в java.mk. Текущий основной по-прежнему использует LOCAL_AIDL_INCLUDES. Этот источник показывает, как Google использует LOCAL_AIDL_INCLUDES для создания платформы Android. Часто это разумный ключ к тому, как они ожидают, что вы будете использовать его в своем проекте, но это ни в коем случае не обязывающий контракт. - person Alex Cohn; 03.05.2019