2016-07-24 21 views
0

私はアンドロイド用のCアプリを構築しています。私のアプリでは 'sigemptyset'を使用していますが、NDKを使用してコードをコンパイルすると正常にコンパイルされますが、アプリケーションを実行するときにはcannot locate symbol 'sigemptyset'Android ndkはシンボル "sigemptyset"を見つけることができません

検索した後、アンドロイド5向けに構築されたndk-r11を使用してアプリケーションをビルドするのが問題であることがわかりましたが、sigemptysetの定義が変更されたアンドロイド4.4でアプリを実行しています。私はAndroid.mkに次の追加:

TARGET_PLATFORM := android-19 

が、私はまだ取得同じエラー

誰もがこの問題を解決する方法を知っていますか?

EDIT:

この質問は、別の質問の重複もApplication.mk

+0

[sigemptyset()NDKないUnsatisfiedLinkErrorのdlopen()](http://stackoverflow.com/questions/25975291/sigemptyset-ndk-unsatisfiedlinkerror-dlopen) – kaitian521

答えて

1

問題の原因でAPP_PLATFORMパラメータを変更することが示唆答えが使用されたNDKのバージョンがされていないではなく、ターゲットプラットフォームのバージョン。 android-19は、sigemptyset()(および他の多くの関数)がプラットフォームヘッダーの直前でインラインとして宣言された最後のプラットフォームのバージョンです。結果として、そのデバイス上のシステムlibcには、そのような機能が含まれていません。だからあなたは正しいです - あなたのコードが古いデバイスで実行できるようにするには、適切なターゲットプラットフォームを使用する必要があります。しかし、あなたはそれを間違ってやっています。必要なのは、Application.mk

APP_PLATFORM := android-19 

を追加するだけです。私はあなたの答えをすでにそれを見つけましたが、とにかくあなたに感謝している

+0

の可能性の重複正しい – ammcom

関連する問題