0

首先,我正在运行一个托管在 win8 上的 ubuntu 12.04 x86 虚拟机。我正在将 ac/c++ 库编译到我的 android 应用程序中。

在目录中使用 ndk-build 后,似乎库和模块构建成功。而且我还可以看到 libs/armeabi/ 下的 .so 文件。但是,当我将我的项目导入 Eclipse 时,它​​总是给出错误,说在这种情况下找不到 lib,命名事件。而且我确实解压了apk文件,发现lib/armeabi/.so没有打包在apk文件中。

以下是详细信息,希望任何人都可以帮助我。

NDK 构建:

simon@ubuntu:~/projects/apps/latest/tgs-android/jni$ ndk-build 
 /home/simon/Android/android-ndk-r8c/build/core/add-application.mk:128: Android NDK:          WARNING: APP_PLATFORM android-14 is larger than android:minSdkVersion 11                a       in /home/simon/projects/apps/latest/tgs-android

androidManifest.xml

  Compile++ thumb  : swift <= NativeLib.cpp
    Compile++ thumb  : swift <= sha1.cpp
    Compile++ thumb  : swift <= compat.cpp
    Compile++ thumb  : swift <= sendrecv.cpp
    Compile++ thumb  : swift <= send_control.cpp
    Compile++ thumb  : swift <= hashtree.cpp
    Compile++ thumb  : swift <= bin.cpp 
    Prebuilt       : libevent.a <= jni/libevent2/lib/
    Prebuilt       : libstlport_static.a <= <NDK>/sources/cxx-stl/stlport/libs/armeabi/
    SharedLibrary  : libevent.so
    Install        : libevent.so => libs/armeabi/libevent.so

能找到

simon@ubuntu:~/projects/apps/latest/tgs-android/jni$ ls ../libs/armeabi/ 
libevent.so

我遇到的另一个问题是,当我尝试使用 aapt a 将 .so lib 添加到 .apk 文件时,它似乎成功了,但是当我使用 adb install 在我的设备上安装它时。它提示:

 simon@ubuntu:~/projects/apps/latest/tgs-android/bin$ adb install IntroActivity.apk 
    2871 KB/s (1089288 bytes in 0.370s)
pkg: /data/local/tmp/IntroActivity.apk
    Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]
    simon@ubuntu:~/projects/apps/latest/tgs-android/bin$ 

但是我认为apk文件已经被eclipse在调试模式下签名了。

simon@ubuntu:~/projects/apps/latest/tgs-android/bin$ jarsigner -verify     IntroActivity.apk 
    jar verified.

警告:此 jar 包含未经完整性检查的未签名条目。

使用 -verbose 和 -certs 选项重新运行以获取更多详细信息。

任何帮助表示赞赏!提前致谢!

4

1 回答 1

2

您可以通过在 Eclipse 中执行以下步骤来解决此问题:

1.

  • 窗口 -> 首选项 -> C/C++ -> 构建 -> 设置
  • 选择 CDT GNU C/C++ 错误解析器
  • 在底部的错误解析器选项中,添加一个包含以下内容的新条目:

    Severity: Warning
    Pattern: (.*?):(\d+): Android NDK: WARNING:(.*)
    File: $1
    Line: $2
    Description: $3
    

2. 之后将这个新项目移到其上层的上方:(.*?):(\d+):(\d+:)? (.*)

这在这里讨论:https ://code.google.com/p/android/issues/detail?id=39752

于 2013-03-05T07:49:01.593 回答