我下载了Android PDF Viewer源代码,并尝试在Eclipse中编译它.我的朋友说我可以从APK中提取预编译的.so文件,而不是搞乱Cygwin并重新编译本机C库.
http://code.google.com/p/apv/downloads/detail?name=apv-0.3.1dev13.apk&can=2&q=
我究竟如何将这些libpdfview2.so文件导入到eclipse项目中?
更新:Eclipse提供以下错误,不会运行:
归档所需的库:项目'APV'中的'lib/armeabi/libpdfview2.so'无法读取或不是有效的ZIP文件
The*_*heo 21
了解他们如何在示例项目中进行设置:http: //code.google.com/p/apv/source/browse/#hg%2Fpdfview
这个NDK教程在帮助您弄清楚NDK的工作方式方面也很有用:http: //mobile.tutsplus.com/tutorials/android/ndk-tutorial/
基础是这样的:
.so库文件通常位于project_root_dir/libs子文件夹中.此外,通常它们位于描述其体系结构的更多子文件夹中(例如project_root_dir/libs/armeabi/libpdfview2.so).
要在活动中使用库,请向活动添加静态库加载器,如下所示:
static
{
System.loadLibrary("pdfview2"); //注意缺少lib前缀
}
然后,您可以定义要导入的本机函数.由于native关键字,您可以识别这些功能.查看下面的文件,查看它们在示例中导入的函数:
这里有些例子:
private native int parseBytes(byte[] bytes);
private native int parseFile(String fileName);
private native int parseFileDescriptor(FileDescriptor fd);
Run Code Online (Sandbox Code Playgroud)
正如所提到的另一个关于此主题的Stack Overflow线程在Window/Preferences/Android/Build下关闭"在构建时自动刷新资源和资源文件夹"和"当外部jar包含本机库时强制错误".至少它对我的情况有帮助!
并且不要忘记将so-file放在'lib s/armeabi'中以便在运行时使用它.
希望这有助于其他人,如果对Li_W来说太晚了.
| 归档时间: |
|
| 查看次数: |
59611 次 |
| 最近记录: |