私はこのため23へminSdkVersion.apiLevel
セットtargetSdkVersion.apiLevel
18にセットされたAndroidアプリ私は18APIレベルと比較したAndroid NDKプラットフォームのバージョンの正確さは何ですか?
にNDK platformVersion
を設定するが、残念ながらミックスにOpenSSLを追加した後、JNIライブラリは現在、リンクに障害が発生しています
/Users/pol/Downloads/Cross/External/Android-Libraries/openssl-1.0.2g/lib/libcrypto.a(ui_openssl.o):ui_openssl.c:function read_string_inner: error: undefined reference to 'signal'
/Users/pol/Downloads/Cross/External/Android-Libraries/openssl-1.0.2g/lib/libcrypto.a(ui_openssl.o):ui_openssl.c:function read_string_inner: error: undefined reference to 'tcsetattr'
/Users/pol/Downloads/Cross/External/Android-Libraries/openssl-1.0.2g/lib/libcrypto.a(ui_openssl.o):ui_openssl.c:function read_string_inner: error: undefined reference to 'tcsetattr'
/Users/pol/Downloads/Cross/External/Android-Libraries/openssl-1.0.2g/lib/libcrypto.a(ui_openssl.o):ui_openssl.c:function open_console: error: undefined reference to 'tcgetattr'
platformVersion
を21に設定すると問題が解決します(19でも動作しません)。
APIレベルが18ですが、JNIライブラリが21にリンクされている場合、これはAndroidアプリの意味ですか?それは4.3を実行しているデバイスで起動時にクラッシュするのだろうか?
私はsignal
シンボルが4.3から欠けているとは思いません。これはNDKのバグですか?
実際にJNIライブラリが<21にロードされるようにこれらのシンボルを弱くリンクすることが可能かどうかは分かりますか?私は彼らがまったく呼ばれていないと確信しているので、彼らが 'null'に解決するかどうかは関係ありません。 – Pol
あなたはhttps://wiki.openssl.org/index.php/Androidの指示に従っていますか? –
私は、提供された './Configure android-armv7'を使ってOpenSSLを構築しました。静的ライブラリを生成し、それをJNI動的ライブラリにマージします。 OpenSSLハッシングAPIを使用する場合しかし、それは私が 'RAND_bytes()'を使用し始めたときです。上記のリンクエラーが出ています。 – Pol