0

まず、win8でホストされているubuntu12.04x86仮想マシンを実行しています。ac /c​​++ライブラリをAndroidアプリにコンパイルしています。

ディレクトリでndk-buildを使用した後、ライブラリとモジュールが正常にビルドされたようです。また、libs /armeabi/の下にある.soファイルも表示されます。ただし、プロジェクトをeclipseにインポートすると、この場合はeventという名前の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

もう1つの質問は、aapt aを使用して.solibを.apkファイルに追加しようとすると成功したようですが、adbinstallを使用してデバイスにインストールした場合です。次のプロンプトが表示されます。

 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 に答える