ここにある pocketmagic.net から Eventinjector プロジェクトを取得しようとしています。
これは、C で記述された事前コード化された jni ライブラリを使用することを意味します。私の問題は、ネイティブ コードをコンパイルしようとすると、ビルド エラーが発生することです。エラー ログは長く、すべてのエラーは同じであると思われるため、その一部のみを投稿します。
jni/EventInjector.h:718:9: error: (near initialization for 'mt_tool_labels[0].value')
jni/EventInjector.h:719:9: error: 'MT_TOOL_PEN' undeclared here (not in a function)
jni/EventInjector.h:719:9: error: initializer element is not constant
jni/EventInjector.h:719:9: error: (near initialization for 'mt_tool_labels[1].value')
jni/EventInjector.h:720:9: error: 'MT_TOOL_MAX' undeclared here (not in a function)
jni/EventInjector.h:720:9: error: initializer element is not constant
jni/EventInjector.h:720:9: error: (near initialization for 'mt_tool_labels[2].value')
jni/EventInjector.c: In function 'debug':
jni/EventInjector.c:82:2: error: format not a string literal and no format arguments [- Werror=format-security]
cc1.exe: some warnings being treated as errors
make: *** [obj/local/armeabi/objs/EventInjector/EventInjector.o] Error 1
ブログ投稿の下のコメントを調べてみると、「Alessandro」にも同じ問題がありましたが、解決策が見つかったことがわかりました。(post 51) 「同じ問題があり、欠落しているすべての宣言を含む独自の input.h バージョンをインポートしました。」
これは、ほとんどのエラーを生成する .c ファイルの一部です。
static struct label key_labels[] = {
LABEL(KEY_RESERVED),
LABEL(KEY_ESC),
LABEL(KEY_1),
LABEL(KEY_2),
LABEL(KEY_3),
LABEL(KEY_4),
LABEL(KEY_5),
LABEL(KEY_6),
LABEL(KEY_7),
LABEL(KEY_8),
LABEL(KEY_9),
LABEL(KEY_0),
LABEL(KEY_MINUS),
LABEL(KEY_EQUAL),
LABEL(KEY_BACKSPACE),
...
私はCの経験がなく、彼が何を意味するのかわかりません。だから私の質問は次のとおりです。これを行うにはどうすればよいですか?
NDK v9 と cygwin を使用して、他の JNI ライブラリを正常にコンパイルしたので、設定と環境に問題はないはずです。