无法在Android Studio

时间:2015-10-18 10:03:21

标签: android c++ android-studio android-ndk

我想在android中使用this library所以,我跟着this guide,我认为我应该怎么做才能使用它

  1. 通过NDK在Android Studio中编译源代码
  2. 使用Swig生成Java包装器类
  3. 因此,我安装了NDK并按照this guidethis设置Android Studio以编译source code

    这是在模块的android.ndk

    build.gradle部分进行设置
    android.ndk {
        moduleName = "MeCab"
        stl = "stlport_shared"
    }
    

    当我编译(Make Project)之后,报告了很多错误,几乎所有错误都是error: 'xxx' has not been declared和一些error: ... has incomplete type

    我认为这是因为#ifdef HAVE_*根本不起作用,我试图删除#ifdef HAVE_*并直接包含头文件然后编译以查看错误是否修复后的结果。

    结果是我直接在mmap.h中加载了<sys/stat.h><fcntl.h>utils.h中的<stdint.h>utils.cpp中的<dirent.h> }和param.cpp中的<cctype>(我可能会忘记一些),并且每个error: 'xxx' has not been declarederror: ... has incomplete type都不会再次显示。
    第一个问题:我是否使用正确的解决方案来修复它?

    上述错误报告的其他错误是
    dictionary.cpp error: 'DIC_VERSION' was not declared in this scope中 在param.cpp error: 'PACKAGE' was not declared in this scopeerror: 'VERSION' was not declared in this scope中 在tagger.cpp error: 'VERSION' was not declared in this scope中 在utils.cpp error: 'MECAB_DEFAULT_RC' was not declared in this scope

    我在Makefile.in中找到了这些变量,在configure中找到了值为mmap.h的变量,但我不知道这些文件与源代码中的变量有什么关系。
    第二个问题:如何解决这些错误?

    消息Gradle Build中未报告上一个错误,但在How to install(Japanese)

    中用红线加下划线
    ...
    
    const T* begin()    const  { return text; }
    T*       end()           { return text + size(); }
    const T* end()    const  { return text + size(); }
    size_t size()               { return length/sizeof(T); }
    
    ...
    

    size()const T* end() const { return text + size(); }Non-const function 'size()' is called from const function,我认为这似乎无法从C#中的静态上下文引用实例字段,但在这种情况下应该如何我解决了吗?**我认为这不是作者的错误。

    我不知道这是一个有用的信息,它是official document(Japanese at the end of file)

      

    要求
          - C ++编译器(g ++ 3.4.3或VC7)
          - iconv(libiconv):用于转换字典
         安装
         它可以按照与一般免费软件相同的程序安装      %tar zxfv mecab-X.X.tar.gz

    % cd mecab-X.X
    % ./configure 
    % make
    % make check
    % su
    # make install
    
         

    字典安装

    % tar zxfv mecab-ipadic-2.7.0-XXXX.tar.gz
    % mecab-ipadic-2.7.0-XXXX
    % ./configure
    % make
    % su
    # make install
    

    如何从https://developer.mozilla.org/de/docs/Web/API/Document/write

    进行编译
      

    的Unix

    % cc -O2 `mecab-config --cflags` example.c -o example \
         `mecab-config --libs`
    
         

    视窗
         为了编译复制包括\ mecab.h,bin \ libmecab.dll&gt; lib \ libmecab.lib
         cygwin / mingw环境

    % gcc -DDLL_IMPORT -I. example.c -o example.exe libmecab.dll
    
         

    VC ++环境

    % cl -DDLL_IMPORT -I. example.c libmecab.lib
    

    我正在使用Windows 10,Android Studio 1.4,NDK r10e

0 个答案:

没有答案