2012年2月26日日曜日
2012年2月10日金曜日
android ndk on eclipse
サンプルプログラムでエラー。
hellojni
cygwinからプロジェクトをビルドしようとしたところ、
ndk-buildで
Android NDK: Host 'awk' tool is outdated. Please define HOST_AWK to point to Gawk or Nawk !
とエラーが表示される。
参考:
http://d.hatena.ne.jp/none53/20111205/1323077921
gawk.exeはcygwin\binに入ってて、同フォルダ内のawkが、gawkへのリンクになってる。
それで、はじめに読み込まれていたandroid-ndk-r7\prebuilt\windows\binの中のawk.exeは使わずに、cygwin\binのgawkを使うべきだったらしい。
ということで、android-ndk-r7のawk.exeの名前を変えればいいということらしい。
awk.exe -> awk_.exe
のようにする。
これで終わり。
設定完了後、hello-jniフォルダで
ndk-build -B
を実行。
そうすると、libsフォルダが作られて、.soファイルが中にコピーされる。
-------------------------------
さらに、eclipseで自動でndk-buildを実行できるようにする。
参考
http://blog.cnu.jp/2011/07/05/build-ndk-in-eclipse/ これはMac用でちょっと違うらしい。
http://mobilepearls.com/labs/ndk-builder-in-eclipse/
を参照。ただし、これだけではうまくできない。
windows用で.batファイルを使うことで解決。
http://blog.malrone.info/archives/1535
この中で、処理が遅いから、-loginを使わないと書いてあるけど、-loginしないとmakeとか使えなくて、コンパイルできず。
ということで、Cygwin.batを以下のように記述。
ちょっと長いけど、フォルダを変更することなく、実行可能。
それと、cygwin環境だと、"c:/"が"/cygdrive/c/"と表されるけど、どちらでもいいみたい。
c:/cygwin/bin/bash -login -c "c:/programming_environment/android-ndk-r7/ndk-build -C c:/programming_environment/android-ndk-r7/samples/hello-jni"
hellojni
cygwinからプロジェクトをビルドしようとしたところ、
ndk-buildで
Android NDK: Host 'awk' tool is outdated. Please define HOST_AWK to point to Gawk or Nawk !
とエラーが表示される。
参考:
http://d.hatena.ne.jp/none53/20111205/1323077921
gawk.exeはcygwin\binに入ってて、同フォルダ内のawkが、gawkへのリンクになってる。
それで、はじめに読み込まれていたandroid-ndk-r7\prebuilt\windows\binの中のawk.exeは使わずに、cygwin\binのgawkを使うべきだったらしい。
ということで、android-ndk-r7のawk.exeの名前を変えればいいということらしい。
awk.exe -> awk_.exe
のようにする。
これで終わり。
設定完了後、hello-jniフォルダで
ndk-build -B
を実行。
そうすると、libsフォルダが作られて、.soファイルが中にコピーされる。
-------------------------------
さらに、eclipseで自動でndk-buildを実行できるようにする。
参考
http://blog.cnu.jp/2011/07/05/build-ndk-in-eclipse/ これはMac用でちょっと違うらしい。
http://mobilepearls.com/labs/ndk-builder-in-eclipse/
を参照。ただし、これだけではうまくできない。
windows用で.batファイルを使うことで解決。
http://blog.malrone.info/archives/1535
この中で、処理が遅いから、-loginを使わないと書いてあるけど、-loginしないとmakeとか使えなくて、コンパイルできず。
ということで、Cygwin.batを以下のように記述。
ちょっと長いけど、フォルダを変更することなく、実行可能。
それと、cygwin環境だと、"c:/"が"/cygdrive/c/"と表されるけど、どちらでもいいみたい。
c:/cygwin/bin/bash -login -c "c:/programming_environment/android-ndk-r7/ndk-build -C c:/programming_environment/android-ndk-r7/samples/hello-jni"
2012年2月9日木曜日
android on eclipse
Manifest.xmlファイル内で、
<uses-sdk android:minSdkVersion="10" android:targetSdkVersion="10"/>
は
<manifest **>の中で
<application ***>
の前にないといけないらしい。
また、エミュレータにインストールできないときに、
adb経由でアンインストールする必要があることも。
これは、eclipseのコンソール上で、表示されている通りにコマンドプロンプトで
adb uninstall ***(パッケージ名)
と実行すればよい。
minSdkVersionは10。
これは、インストールしてあるplatformを指してるのかな。
<uses-sdk android:minSdkVersion="10" android:targetSdkVersion="10"/>
は
<manifest **>の中で
<application ***>
の前にないといけないらしい。
また、エミュレータにインストールできないときに、
adb経由でアンインストールする必要があることも。
これは、eclipseのコンソール上で、表示されている通りにコマンドプロンプトで
adb uninstall ***(パッケージ名)
と実行すればよい。
minSdkVersionは10。
これは、インストールしてあるplatformを指してるのかな。
eclipse + android
visual studio上で、アプリを実機に転送するには、有料のソフトが要るみたいだったから、eclipseを使ってみる。
参考
<eclipse>
インストール
好きなフォルダへ入れる
<pleiades>
eclipseの日本語化
安定版のインストール(all in oneじゃなくて、その下にあるリンクから取得)と書いてあるとこもあるけど、
いったんSVNから入れたら、安定版で上書きしても動かなかった。
安定版の問題なのか、一旦起動してから上書きしたからなのか不明だけど、今はSVN版で動かしてる。
cleanを実行すればいいのかも。
vs-android
<インストール>
いろいろやってみてできた結果。
とくに参考になったのは以下のページ。
1. http://www.atinfinity.info/wiki/index.php?Android%2FUsage%20of%20vs-android
2. http://joevtyler.blog.fc2.com/blog-entry-5.html
vs-androidのページ
http://code.google.com/p/vs-android/wiki/Installation
1の参考ページの中で、
vs-android_samples\bitmap-plasma\AndroidApk\project.properties
内で
target=android-14
と書き直す
とある。でも、ちゃんと動かなかった。<-原因が分からないけど。
同じ点について
2. http://joevtyler.blog.fc2.com/blog-entry-5.html
では、コマンドプロンプトから
android update project -t 1 -p .
を実行と書いてあった。
やってることは同じっぽい。コマンドプロンプトで事前に
android list target
を実行すると、インストールされているplatformの情報がでてきて、そこにidが割り振られる。
この結果は以下のようになった
Available Android targets:
----------
id: 1 or "android-10"
Name: Android 2.3.3
Type: Platform
API level: 10
Revision: 2
Skins: HVGA, QVGA, WQVGA400, WQVGA432, WVGA800 (default), WVGA854
ABIs : armeabi
----------
id: 2 or "android-13"
Name: Android 3.2
Type: Platform
API level: 13
Revision: 1
Skins: WXGA (default)
ABIs : armeabi
----------
id: 3 or "android-14"
Name: Android 4.0
Type: Platform
API level: 14
Revision: 3
Skins: HVGA, QVGA, WQVGA400, WQVGA432, WSVGA, WVGA800 (default), WVGA854, W
XGA720, WXGA800
ABIs : armeabi-v7a
----------
id: 4 or "android-15"
Name: Android 4.0.3
Type: Platform
API level: 15
Revision: 2
Skins: HVGA, QVGA, WQVGA400, WQVGA432, WSVGA, WVGA800 (default), WVGA854, W
XGA720, WXGA800
ABIs : armeabi-v7a
----------
開発したいplatformのidと、ソースコードのあるパスを指定しているわけ。
android update project -t (id) -p ( AndroidApk フォルダのパス)
idは、2でも"android-13"でもどちらでもok。
これを実行すると
project.propertiesとlocal.propertiesが更新されて、proguard.cfgというファイルが追加された。
ただし、更新といっても次の点のみ。
project.properties
target=android-13
local.properties
sdk.dir=C:\\Program Files (x86)\\Android\\android-sdk
だから、処理は、上でandroidのplatformを変えたのと同じっぽい。
cfgにはクラスが宣言されてるけど、バージョン依存の感じはない。分からないけど、消してもアプリは動いた。
プロジェクトの「構成プロパティ」の設定は
Target Android API level を"android-13"にするといいのかもしれないけど、選択肢になくて、"android-9"にした。
Target Architecture を"ARM Architecture v7-a (armv7-a)"にすると、emulatorと同じになるけど、"ARM Architecture v5te (armv5te)"でも動いた。
それと、emulatorを2つ以上同時には動かせなさそう。
android-10,13は動いたけど、android-14,15は動かない。コンパイルは通ってる。
なんで?
-------------
それにしても、emulatorの起動遅すぎ。
いろいろやってみてできた結果。
とくに参考になったのは以下のページ。
1. http://www.atinfinity.info/wiki/index.php?Android%2FUsage%20of%20vs-android
2. http://joevtyler.blog.fc2.com/blog-entry-5.html
vs-androidのページ
http://code.google.com/p/vs-android/wiki/Installation
1の参考ページの中で、
vs-android_samples\bitmap-plasma\AndroidApk\project.properties
内で
target=android-14
と書き直す
とある。でも、ちゃんと動かなかった。<-原因が分からないけど。
同じ点について
2. http://joevtyler.blog.fc2.com/blog-entry-5.html
では、コマンドプロンプトから
android update project -t 1 -p .
を実行と書いてあった。
やってることは同じっぽい。コマンドプロンプトで事前に
android list target
を実行すると、インストールされているplatformの情報がでてきて、そこにidが割り振られる。
この結果は以下のようになった
Available Android targets:
----------
id: 1 or "android-10"
Name: Android 2.3.3
Type: Platform
API level: 10
Revision: 2
Skins: HVGA, QVGA, WQVGA400, WQVGA432, WVGA800 (default), WVGA854
ABIs : armeabi
----------
id: 2 or "android-13"
Name: Android 3.2
Type: Platform
API level: 13
Revision: 1
Skins: WXGA (default)
ABIs : armeabi
----------
id: 3 or "android-14"
Name: Android 4.0
Type: Platform
API level: 14
Revision: 3
Skins: HVGA, QVGA, WQVGA400, WQVGA432, WSVGA, WVGA800 (default), WVGA854, W
XGA720, WXGA800
ABIs : armeabi-v7a
----------
id: 4 or "android-15"
Name: Android 4.0.3
Type: Platform
API level: 15
Revision: 2
Skins: HVGA, QVGA, WQVGA400, WQVGA432, WSVGA, WVGA800 (default), WVGA854, W
XGA720, WXGA800
ABIs : armeabi-v7a
----------
開発したいplatformのidと、ソースコードのあるパスを指定しているわけ。
android update project -t (id) -p ( AndroidApk フォルダのパス)
idは、2でも"android-13"でもどちらでもok。
これを実行すると
project.propertiesとlocal.propertiesが更新されて、proguard.cfgというファイルが追加された。
ただし、更新といっても次の点のみ。
project.properties
target=android-13
local.properties
sdk.dir=C:\\Program Files (x86)\\Android\\android-sdk
だから、処理は、上でandroidのplatformを変えたのと同じっぽい。
cfgにはクラスが宣言されてるけど、バージョン依存の感じはない。分からないけど、消してもアプリは動いた。
プロジェクトの「構成プロパティ」の設定は
Target Android API level を"android-13"にするといいのかもしれないけど、選択肢になくて、"android-9"にした。
Target Architecture を"ARM Architecture v7-a (armv7-a)"にすると、emulatorと同じになるけど、"ARM Architecture v5te (armv5te)"でも動いた。
それと、emulatorを2つ以上同時には動かせなさそう。
android-10,13は動いたけど、android-14,15は動かない。コンパイルは通ってる。
なんで?
-------------
それにしても、emulatorの起動遅すぎ。
登録:
投稿 (Atom)