Библиотека ndk-build не может быть добавлена ​​в файл apk с помощью eclipse и проблемы с подписью после aapt модуля lib

Во-первых, я использую виртуальную машину Ubuntu 12.04 x86, размещенную на Win8. Я компилирую библиотеку c/c++ в свое приложение для Android.

После того, как я использую ndk-build в каталоге, кажется, что библиотека и модуль были успешно собраны. И я также вижу файл .so в libs/armeabi/ . Однако, когда я импортирую свой проект в 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

Можно найти

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.

Предупреждение. Эта банка содержит неподписанные записи, целостность которых не проверялась.

Повторите запуск с параметрами -verbose и -certs для получения дополнительных сведений.

Любая помощь приветствуется! ЗАРАНЕЕ СПАСИБО!


person user1920437    schedule 21.12.2012    source источник


Ответы (1)


Вы можете исправить это, выполнив следующие шаги в 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

person zhangweiheb    schedule 05.03.2013