[過去ログ] Android Studio Part3 (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
640(3): デフォルトの名無しさん [sage] 2020/02/27(木) 12:04:51.75 ID:PAlqJhWb(1) AAS
外部リンク:developer.android.com
C++(JNI)をライブラリモジュールにしてAARを作ったんだけども、
AARファイルを呼び出せるのはC++になるのでしょうか?
AARをJavaのSystem.loadLibrary()で呼び出すことは出来ますか?
642(2): 640 [sage] 2020/02/28(金) 12:11:16.64 ID:EnnwOLKH(1/3) AAS
新しいプロジェクト「cpptest」にsoファイルをコピーして実行したら下記エラーが出て
java.lang.UnsatisfiedLinkError: No implementation found for int[] sample.test.cpptest.MainActivity.intFromJNI(int[])
ライブラリ作成時のプロジェクト「cppmodule」の関数名にプロジェクト名が入っているので、
・Java_sample_test_cppmodule_MainActivity_intFromJNI(
の「cppmodule」を「cpptest」に書き換えてビルドしてからコピーしたら、System.loadLibrary()で呼び出すことは出来ました
ただ毎回新たなプロジェクト名に合わせて関数名を変えてビルドし直すのは面倒ですしヒューマンエラーの元ですし、
プロジェクト名に依存しない汎用的な関数名にすることは出来ないのでしょうか?
645(1): 640 [sage] 2020/02/28(金) 16:43:54.21 ID:EnnwOLKH(2/3) AAS
>>643-644
回答ありがとうございます、最初のですと一箇所を変えて毎回soファイルをコンパイルする必要があるのですね
native呼び出し部分をパッケージごとクラスにすれば、soファイルは使いまわしが出来るかもしれませんね
外部リンク:qiita.com
モジュールでJNIが使えないのが謎ですが、試してみます
647: 640 [sage] 2020/02/28(金) 21:12:13.69 ID:EnnwOLKH(3/3) AAS
>>646646(1): デフォルトの名無しさん [sage] 2020/02/28(金) 17:47:42.20 ID:mGEHxTZy(3/3) AAS
>>645
>最初のですと一箇所を変えて毎回soファイルをコンパイル
#define JNIFN(x) Java_company_appname_cla・・・の部分だけをxxx.hで
分離しとけばアプリ毎に一回作るだけだし、
最終的にAPKファイルにするにはAS上でビルドする必要があるので、
>soファイルは使いまわし
のほうが返って手間がかかりそうな・・・
個人的意見としては、ネイティブコードの担当者と各アプリの担当者が皆
違うとか、頻繁にC++部に修正が入るとかでないなら、AARにするメリット
はあまり無いと思う。
あと、
>外部リンク:qiita.com
AS2.xとAS3.xではNDK回りは大きく変わっているので、ネットで情報を探す
時は古い情報は役に立たないので要注意。
丁寧にありがとうございます
ネイティブコードは見られたく無いので、soやaarで渡したいかなと
NDK回りはAS3.xでかなり変わったのですか
検索する時は1年以内にしているのですが、
怪しい翻訳サイトが数年前のSOを翻訳して載せてるのが結構ひっかかりますね
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.047s