【问题标题】:Android Source Code Compilation issueAndroid源代码编译问题
【发布时间】:2016-02-12 16:29:19
【问题描述】:

我正在开发一个 C++ 应用程序,我需要与 Android 源代码交互,我从下面的 URL 获得了这个源代码

https://github.com/android

现在,当我编译使用 Camera 模块的应用程序时,它有许多依赖项,例如 utils、binder、gui、system。通过这种方式,我包含了 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

我的问题是:如何摆脱这个错误??

【问题讨论】:

  • 错误信息有什么不清楚的地方?
  • 我不清楚 @ChristianHackl 是什么意思
  • 哦..我想知道这怎么可能是Android代码的问题?错误:'class Flattenable' 所需的模板参数由stackoverflow.com/questions/9850809/… 解决
  • @ChristianHackl 不清楚的是需要更改android源代码吗?或者我需要在改变之前检查工作..这样我就被卡住了..

标签: android c++ compiler-errors android-camera android-source


【解决方案1】:

每当任何类模板需要在另一个类或任何地方预先声明时,我们都需要给它模板

例如: 在Android源码的Parcel.h文件中,Flattenable类的预声明如下:

class Flattenable;

但实际上应该是:

template <typename T> class Flattenable;

因为类 Flattenable 是 Template 类。 但是我很惊讶这些东西竟然没有在 Android 源代码中得到照顾..!!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-04
    • 1970-01-01
    • 1970-01-01
    • 2012-06-29
    • 2020-07-17
    • 1970-01-01
    相关资源
    最近更新 更多