Windows7でAndroid NDKを使用してCファイルを作成し、Hello Worldを表示する
環境
- Windows 7
- AndroidStudio 3.0
NDKの概要と目的
AndroidでCやC++を使用できるようにするもの。
Cファイルで"Hello World"を作成し、それをAndroid端末に表示したい。
新規プロジェクト作成
Application name: 「NdkTest2」
Company domain:「companydomain」
NDKインストール
Tools → Android → SDK Managerから↓を選択してインストール
環境変数設定
File → Project Structure → SDK Location → Android NDK locationにあるパス名を環境変数の「Path」に追加。
環境構築
対応Androidの最小バージョンを指定。最低でも14以上にしないとNDKが使用できない。
<uses-sdk android:minSdkVersion="14" />
↓のフォルダに「Application.mk」作成。その中に「APP_PLATFORM := android-14」と記入。
↑と同じフォルダに「Android.mk」作成。その中に以下を記述。
LOCAL_PATH := $(call my-dir) # 現在のディレクトリを指定。
include $(CLEAR_VARS) # 複数のライブラリを使用する場合に推奨らしい。
LOCAL_MODULE := hello # 作成したいライブラリファイルの名前。
LOCAL_SRC_FILES := hello.c # 作成したいソースファイルの名前。
LOCAL_LDLIBS := -llog # Androidの機能を使用できるようにリンクする。
LOCAL_ARM_MODE := arm # armモードでコンパイル。高速にできるらしい。
include $(BUILD_SHARED_LIBRARY) # 共有ライブラリを作成するために必要。
↑の各記述の意味については↓のリンクを参照。
http://www.atmarkit.co.jp/ait/articles/1003/17/news093_3.html
↑と同じフォルダに「hello.c」を新規作成。中身は空でよい。
ここまですると、Android Studioに先ほど作成したファイルが表示されているはず。
ここから右クリック → Link C++~をクリック。Build Systemを「ndk-build」にした後にProject Pathに「Android.mk」を指定。
OKを押すと、「Android.mk」と「Application.mk」が↓のように移動する。
左下のTerminalを選択後「cd app/src/main/jni」を入力。その後、「ndk-build」を入力すると、共有ライブラリが生成される。
companydomain.ndktest2内にjavaファイルを作成。中身を以下のように書く。
TextHello();が赤文字になっているはず。
マウスカーソルを当てて Alt + Enter で出てきた「Create ~」をクリック。
すると、hello.cに以下の内容が書き込まれる。
このままだとエラーなので、以下のように書き換える。jni.hの追加。jstringJNICALLの間を空ける。
returnValueを"Hello World"。
一旦ビルドした後に、activity_main.xmlにText Viewを追加。その後、MainActivity.javaに以下を記述。
その後実行すると"Hello World"が表示される。
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Sample sample = new Sample();
TextView textView = (TextView) findViewById(R.id.textView);
textView.setText(sample.TextHello());
}
}
追記
Terminalで以下のように記述するとヘッダファイルが作成される。
参照元
http://outcesticide.hatenablog.com/entry/2012/11/30/003949
http://www.atmarkit.co.jp/ait/articles/1003/17/news093.html
http://d.hatena.ne.jp/yasuhallabo/20130816/1376616907
https://stackoverflow.com/questions/41791429/error-your-project-contains-c-files-but-it-is-not-using-a-supported-native-bu
https://dev.classmethod.jp/smartphone/android/android_ndk_install/
Author And Source
この問題について(Windows7でAndroid NDKを使用してCファイルを作成し、Hello Worldを表示する), 我々は、より多くの情報をここで見つけました https://qiita.com/sourcekatu/items/233eebae9ceb80a12364著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .