ラベル eclipse の投稿を表示しています。 すべての投稿を表示
ラベル eclipse の投稿を表示しています。 すべての投稿を表示

2016年3月31日木曜日

cocos2d-x v3.10にアップデートして行ったEclipseの設定

どうも、俺です。
cocos2d-xをv2.2.6からv3.10にアップデートしたので、忘れないうちにメモ。

EclipseじゃなくてAndroidStudio使おうぜ、という指摘もあると思いますが、
EclipseでもAndroidStudioでも、両方でビルド出来るようにしたいのです。

まず、v2系で使っていたbuild_native.shはbuild_native.pyに置き換わり、スクリプトの中身を自分で変更しなくても良くなりました。
jni/Android.mkは適宜編集が必要です。


EclipseのRun実行時にbuild_nativeが自動で走らない。

そうです、なぜか自動でbiuld_nativeが走ってくれないので、その設定をば。
プロジェクトを選択し「Properties」>「Builders」を選択。
その中にあるCDT Builderにチェックが入っていないのでチェックします。



これに気づくまでは、手動で./build_native.pyを叩いていたのですが、
なぜかそうすると、libcocos2dx.jar(v3.10)とgoogle-play-services_lib.jarが毎回削除されてしまっていたので、
それぞれのプロジェクトも手動で「Build Project」する必要がありました。。


sh: cocos: command not found的なエラーが出る。

ビルド時にこのエラーが出て先にすすめません。
build_native実行時に呼ばれるcocosコマンドが見つからないそうなので、設定してやります。
先と同じく、プロジェクトを選択し「Properties」から「C/C++ Build」>「Environment」を選択します。
右側の「Add...」から
  • ANDROID_SDK_ROOT = 「ANDROID_SDKのパス」
  • ANT_ROOT = 「ANTのパス」
※例) /usr/local/Cellar/ant/1.9.5/libexec/bin
  • COCOS_CONSOLE_ROOT = 「cocosコマンドのあるパス」
※例) /PATH/TO/COCOS2DX/v3.10/tools/cocos2d-console/bin
  • PATH = 「${PATH}:${COCOS_CONSOLE_ROOT}:${ANDROID_SDK_ROOT}」
を設定します。


今のところ、このくらいです。
また出てくれば追記していきます。

2015年12月24日木曜日

error: Error retrieving parent for item: No resource found that matches the given name '@android:style/ Theme.Material.Light.DialogWhenLarge.NoActionBar'.

どうも、俺です。

eclipseを使ってAndroidアプリ開発中に、
組み込んだgoogle-play-serviceでタイトル通りのエラーがでたときの対応。

error: Error retrieving parent for item: No resource found that matches the given name '@android:style/ Theme.Material.Light.DialogWhenLarge.NoActionBar'.

eclipseの設定をイジってしまったのだと思いますが、どこをどうイジったのか全く覚えておりません。
修正を色々試みたところ、
StackOverflowに似たようなエラーで困っている人発見!

今回の僕の場合、
appinvite_style.xmlに記述されている
Theme.Material
APIレベル21以上で利用できる、とのことなので、
google-play-serviceプロジェクトの
プロパティ>Android>Project Build Target
をAPI21にして修正完了。


以上でぇぇぇぇぇぇぇぇす。。

2014年10月3日金曜日

Androidアプリ Lintエラーの対応

どうも、俺です。
しばらくなかったブログ更新を埋めるかのように連日投稿しています。

今日はAndroidアプリをeclipseでビルドするときに出るLinのエラー対応についてです。

■エラーその1
"xxxxx" is not translated "......"

→解決方法
 無視しましょう。

プロジェクト名>Properties>Android Lint Preferences
を選択、
MissingTranslationを選択してそのSeverityを"Warning"にしましょう。



これは、外部のライブラリ等を組み込んだ時に、
そのライブラリで設定されているローカライズ情報が、
開発中アプリまたはその他ライブラリに影響するために出るエラー、だそうです。。
要約すると、「言語リソースが足りねぇよ」というエラーです。


■エラーその2
"xxxx" is translated here but not found in default locale

→解決方法
google-play-servicesプロジェクト内にある
res>values-en-rIN>auth_strings.xmlをコピーして、
同じくgoogle-play-servicesプロジェクトの
res>valuesフォルダにペースト。



google-play-servicesを導入してから出るようになったエラーなので、
おそらくそれが原因っぽい。。



以上でぇぇぇぇぇぇす。

2012年11月28日水曜日

Androidアプリ開発でのメモリ使用量確認

どうも、俺@残業中で腹減ったです。
最近はAndroidアプリ開発にも手を出しています。eclipse超高機能で便利ですね。

さて、Androidアプリを開発してるとOutOfMemoryに悩まされる開発者の方々多いのではないでしょうか。
僕も悩みまくっていまして、ググると大量に関連した記事が出てきます。
Xcodeだとinstrumentsというツールでメモリリークを調べたりできますが、もちろんeclipseでも可能です。
という訳で、それらをまとめてアプリのメモリ使用量について確認したいと思います。

※環境
Mac OSX 10.8.2
eclipse JUNO SR 1

その1)DDMS
実機転送またはエミュレータでアプリ起動中に、eclipseのDDMSでメモリ量を確認できます。
まずDDMS画面に切り替えます。

次に左側のペインから対象のアプリパッケージを選択します。
※開発中のものがあるので画像加工しています。。

そして、その上部にある「Update Heap」をクリック。

そして、その右側にあるペインから「Heap」タブを選択し「Cause GC」をクリックします。
これはGCが走らないとHeap状況が出ないからなので、GCが走るのを待っても良いです。

そうするとGCが走る度にメモリ使用量が更新されていきます。

HeapSizeは確保されているメモリ量で必要に応じてメモリが確保され増えていきます。
増え続けると限界値まで増えます。
限界値は
Runtime.getRuntime().maxMemory()
で確認可能。
限界値はエミュレータの場合は、Android Virtual Device Managerで設定するMax VM application heap sizeです。


Allocatedは使用中のメモリ量です。
このDDMSでどのくらいHeapが確保されていて、どのくらい使われているのかを確認します。
ちなみにここで言うHeapはDalvikヒープのことを指しているようです。

Androidアプリ自身には、
・ネイティブヒープ
・Dalvikヒープ
の2種類のヒープがあるようです。
あと端末自体に割り当てられているLinuxヒープというのもありますが。

■ネイティブヒープ
Andorid3.0以前であれば、主にBitmapデータを確保するために利用されます。
// 全体ネイティブサイズ
Debug.getNativeHeapSize();

// 使用中ネイティブヒープサイズ
Debug.getNativeHeapAllocatedSize();

// 空きネイティブヒープサイズ
Debug.getNativeHeapFreeSize();
で確認できます。
■Dalvikヒープ
クラスのインスタンスやBitmap(Android3.0以降)データを確保するために使われます。
// 確保されたDalvikヒープサイズ
Runtime.getRuntime().totalMemory();

// メモリが足りない場合に確保しようとする最大のDalvikヒープサイズ
Runtime.getRuntime().maxMemory();

// 空きDalvikヒープサイズ
Runtime.getRuntime().freeMemory();

// 使用中Dalvikヒープサイズ
Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory();
で確認できます。
このネイティブヒープとDalvikヒープの使用合計サイズが最大値を超えるとOutOfMemoryが発生してしまうのです。
Androidのバージョンが低い端末だと、割り当てられるメモリ量が少ないために、画像生成時などにメモリ枯渇によりアプリが落ちてしまう事が多々あるようです。
特にBitmap系でのOutOfMemoryの場合は、画像サイズをいかに小さくするかで割りと解決出来たりします。


以上でぇぇえぇす。

2012年11月23日金曜日

Androidアプリで "R cannot be resolved to a variable"エラー

どうも、俺@3連休です。
最近はAndroidアプリの開発にも手を出しております。

サーバサイドはvimでコーディング、iOSアプリはxcodeで開発してたのですが最近はもっぱらeclipseです。
eclipseの豊富な機能に圧倒されております。

さてタイトルの件ですが、Androidアプリ開発をしてるとたまに目にするエラーのようで、ググルと多くのサイトに解決方法が書いてますね。
原因はプロジェクト内のgenディレクトリ内に生成されるR.javaが消えてなくなってたり、更新されなくなってたり、ということのようです。
R.javaはリソースに関するデータを扱う自動生成されるプログラムファイルです。

なぜ消えてなくなったり、更新されなくなるのか?の部分を直してやれば解決します。
そのいくつかをご紹介します。

■解決方法
・CleanしてBuildしてやる。
・eclipseを再起動。
・eclipseを終了して、プロジェクト内のgenディレクトリをまるごと削除しeclipse起動。
・resディレクトリ以下にあるxmlファイルに記述ミスがあるので直してやる。
 →consoleにエラーログが出力されているはずなのでチェック。
・なぜか別の android.R; がインポート宣言されちゃっている。それじゃないです。
 →あったら削除。

ちなみに僕も同様の現象が発生し、そのどれを試しても直りませんでした。
ですがMacごと再起動しeclipseを立ち上げたらなぜか直りました。
超レアケースかも知れませんが、最終的には開発端末ごと再起動でなんとかなるかも知れませんよ!


以上でぇぇえぇぇす。