ndk构建库可以';不能通过eclipse将其添加到apk文件中,并且在库模块的aapt a之后发出签名

ndk构建库可以';不能通过eclipse将其添加到apk文件中,并且在库模块的aapt a之后发出签名,eclipse,android-ndk,ubuntu-12.04,aapt,android-keystore,Eclipse,Android Ndk,Ubuntu 12.04,Aapt,Android Keystore,首先,我运行的是一台托管在win8上的ubuntu 12.04 x86虚拟机。我正在为我的android应用程序编译一个c/c++库 在目录中使用ndk build之后,似乎库和模块都成功构建。我还可以在libs/armeabi/下看到.so文件。然而,当我将我的项目导入eclipse时,它总是给出一个错误,说找不到lib,在本例中是命名事件。我解压了apk文件,发现lib/armeabi/.so没有打包在apk文件中 下面是详细的信息,希望大家能帮助我 NDK构建: simon@ubuntu:

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

在目录中使用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
ndroidManifest.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
另一个问题是,当我尝试使用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/jni$ ls ../libs/armeabi/ 
libevent.so
simon@ubuntu:~/projects/apps/latest/tgs-android/bin$ jarsigner -verify     IntroActivity.apk 
    jar verified.
警告: 此jar包含未经完整性检查的未签名项

有关详细信息,请使用-verbose和-certs选项重新运行

感谢您的帮助!
提前谢谢

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

一,

  • 窗口->首选项->C/C++->生成->设置
  • 选择CDT GNU C/C++错误分析器
  • 在底部的错误分析器选项中,添加具有以下内容的新条目:

    Severity: Warning
    Pattern: (.*?):(\d+): Android NDK: WARNING:(.*)
    File: $1
    Line: $2
    Description: $3
    
二,。 之后,将此新项目向上移动到其上一个项目的正上方:
(.*):(\d+)(\d+:)?(.*)

这里讨论了这一点: