スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
line

ASでVSで作ったsoを使う方法

調べても全然出てこないから(この界隈の人には当たり前の方法の組み合わせでできるから?)方法をメモ

そもそもJNIってなんじゃねん美味しいの?アラブの魔神?から入ったのでホントわけわかめでしたorz

ってかなんでこんな変な関数名つけなダメなんだよロード関数読んだら勝手にからの定義したとこに実体つくとかまじキモしかもパッケージ固定させるとかしねばいいのに何なのこの糞仕様バカじゃないのしぬの?JNA?もっと資料少ないはできなかったわボケしね!

という何時間もできないできないと悩んでたのが単純な原因だった時の自己嫌悪でした(・ω<)


結局何がしたかったのかというと!

最近AndroidStudioでたよね。でもこれネイティブコード動かす方法わけわからないんだけど?日本語資料ないんだけど?てか日本語資料だと古いバージョン向けだけどできないって書いてるんだけど?

そういえばVisualStudi2015のテスト版出たよね?あれクロスプラットフォーム強化されてAndroidネイティブコード開発できたよね?

これ組み合わせれば最強じゃね?

って発想でしたヽ(・ω・)/


ってことでその方法を
↓↓↓↓↓↓↓↓↓


まず適当にASのほうでプロジェクト作ります


で、このページ

http://smartphone-zine.com/mobile/android/use-opencv-for-android-in-the-android-studio.html

の下の方みたいにapp/src/mainにjniLibsフォオルダを作ってその下も作ります




次にさっくりライブラリ(so)を作りましょう

注意)インストール時にNDKがインストールされている必要がります

VS2015をひらいてファイル新規プロジェクト「Dynamic Shared Library (Android)」を作ります

面倒なので.hは消して、cppはcにします

次にコードの中身を
C:\Program Files (x86)\Microsoft Visual Studio 14.0\Apps\android-ndk-r10\samples\hello-jni\jni

の中の「hello-jni.c」のやつを書きます

で、この時関数名を

javaコードの方の

package com.example.nanntoka.sineapp;

みたいなところを探してこれを取ってきたコードの

jstring Java_com_example_hellojni_HelloJni_stringFromJNI( JNIEnv* env, jobject thiz ){のとこの

com_example_hellojni

に「.」を「_」にして書き換えます

そのあとその後ろのHelloJniは例えばMainActivityとかの実行したいクラスのクラス名に置き換えます

jstring Java_com_example_nanntoka_sineapp_MainActivity_stringFromJNI( JNIEnv* env, jobject thiz ){
こんなかんじですかね

ではコンパイルするとプロジェクトのフォルダARM\Releaseに*.soができると思うのでそれをさっき作ったフォルダに入れます



あとはjavaから呼び出すんですが

これは

public native String stringFromJNI();
static {
System.loadLibrary("さっきのsoファイルのファイル名から先頭のlibをとったやつ");
}

てすればいけます


これでいけるはず!!
line
line

comment

管理者にだけ表示を許可する

line
line

FC2Ad

line
俺様

}{A3}{

Author:}{A3}{
大阪に生息中の
同学年28人の来年また1年生
主にPSPで遊んでたり
プログラム書いてたり
そんな東方厨です
最近ARやらVRにハマってる
東方持遊創
PSPRスキン
PSPカスタムテーマ
その他有象無象作ってます
メアド用のコピー
メールはお気軽に
スカイプ名 h-a3-h
もしくは下のついったーで

line
ついたあ
    フォローするボタンのコピー
    line
    初めて人は読んでね☆
    line
    コメント
    line
    かてごりー
    line
    何人きたかな?
    line
    みてるかず
    line
    リンク
    line
    ブログ内検索
    line
    sub_line
    上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。