я работаю над одним из приложений C ++, где мне нужно интерфейс с исходным кодом Android, я получил этот исходный код из URL ниже
Теперь, когда я компилирую свое приложение, которое использует модуль Camera, оно имеет много зависимостей, таких как Utils, связующее, графический интерфейс, система. таким образом я включаю все заголовочные файлы, от которых зависит модуль камеры Android.
но я застрял со следующей ошибкой:
In file included from jni/headers/camera/ICamera.h:22:0,
from jni/headers/MyCamera.h:4,
from jni/headers/VideoWrapper.h:4,
from jni/src/com_example_jnitest_VideoJava.cpp:2
jni/headers/binder/Parcel.h:31:7: error: template argument
required for 'class Flattenable'
class Flattenable;
^
jni/headers/binder/Parcel.h:105:37: error: invalid use of
template-name 'android::Flattenable' without an argument list
status_t write(const Flattenable& val);
^
jni/headers/binder/Parcel.h:160:30: error: 'Flattenable' is not a type
status_t read(F
мой вопрос: Как выйти из этой ошибки ??
Всякий раз, когда любой шаблон класса должен быть предварительно объявлен в другом классе или в любом другом месте, тогда мы должны предоставить его с шаблоном
например:
в файле Parcel.h источника Android предварительное объявление класса Flattenable выполняется следующим образом:
class Flattenable;
но на самом деле это должно быть:
template <typename T> class Flattenable;
потому что класс Flattenable является классом Template.
Однако я поражен, как это не заботится об исходном коде Android .. !!
Других решений пока нет …