我正在尝试使用Eclipse上的ADT 20.0.3使用本机代码调试Android应用程序,它给了我这个错误:
[2012-10-04 12:09:12 - ndk_android] Unknown Application ABI:
[2012-10-04 12:09:12 - ndk_android]
[2012-10-04 12:09:12 - ndk_android] Unable to detect application ABI's
Run Code Online (Sandbox Code Playgroud)
jni文件构建正确,我可以使用本机代码运行应用程序.
我的构建文件Application.mk看起来像这样:
APP_OPTIM := debug
APP_ABI := armeabi armeabi-v7a
APP_STL := gnustl_static
LOCAL_LDLIBS := $(ANDROID_NDK)/sources/cxx-stl/gnu-libstdc++/libs/armeabi-v7a/libgnustl_static.a
Run Code Online (Sandbox Code Playgroud)
有谁知道这个错误的原因是什么?有没有人得到本地调试与ADT 20一起工作?
我正在按照这里的指南:http://tools.android.com/recent/usingthendkplugin
编辑:
清理和删除临时文件/文件夹/设置后,我仍然得到相同的错误.然后我安装了一个干净的Eclipse.安装了CDT,然后安装了ADT,这似乎解决了这个问题.我相信问题出在Sequoyah或Eclipse中的其他插件/设置中.
这已经解决了,但现在我又遇到了另一个问题.断点不起作用,但我会将其保留为另一个问题.
我很难让 SWIG typemap(javapackage)正常工作。我尝试制作一个简单版本的问题,但即使这样似乎也失败了。
foo.h:
#ifndef FOO_H
#define FOO_H
class Foo
{
public:
Foo() {};
int doSomething() { return 1 };
};
#endif
Run Code Online (Sandbox Code Playgroud)
酒吧.h:
#ifndef BAR_H
#define BAR_H
#include "foo.h"
class Bar
{
public:
Bar() {};
int doSomething(Foo foo) { return foo.doSomething(); };
};
#endif
Run Code Online (Sandbox Code Playgroud)
Foo.i
%module FooMod
%include "typemaps.i"
%include "stdint.i"
%{
#include "../header/foo.h"
%}
%include "../header/foo.h"
Run Code Online (Sandbox Code Playgroud)
酒吧i
%module BarMod
%import "Foo.i"
%typemap("javapackage") Foo, Foo *, Foo & "com.me.t.foo";
%include "typemaps.i"
%include "stdint.i"
%{
#include "../header/bar.h"
%}
%include "../header/bar.h" …Run Code Online (Sandbox Code Playgroud)