(1)Androidアプリ開発、今日のエラー,AndroidManifest.xml、AndroidActivity.xmlの設定忘れ、Admob広告を表示させる,error、 エミュレータ 動かない,エミュレータを起動してもアプリが実行されない
-
アイフォンアプリの場合はこちら
- Androidアプリ開発、今日のエラーまとめ(1)ー(6)分、2003年9月22日〜11月7日(1)から(6)まとめのリンクはこちら
- (7) 今日のエラーAndroidアプリ開発、andEngine GLES2 Anchor Center,box2d |manifest.xmlの記述ミスでintentでエラーはこちら
アイフォンアプリをアンドロイドアプリに移植中です。
アイフォンの開発言語はobjective-cで、アンドロイドはJAVA言語になります。JAVAをベースにしてアンドロイドアプリをつくるとしてもアンドロイドアプリのための固有の開発方法がありそうです。
(1)ワーニング AndroidManifest.xml
Description Resource Path Location Type
Not targeting the latest versions of Android; compatibility modes apply. Consider testing and updating this version. Consult the android.os.Build.VERSION_CODES javadoc for details. AndroidManifest.xml
android:targetSdkVersion=”18″
しました。
(2)android エミュレータ 動かない,エミュレータを起動してもアプリが実行されないときは
EclipseからAndroidエミュレータを起動してもアプリが実行されない
この記事を参考にしてようやくハローワールドが表示されました。
(3)intent 画面遷移で移動できない、対処はAndroidActivity.xmlの設定忘れ
AndroidActivity.xmlに
(4)adView = new AdView(this, AdSize.BANNER, “ID-XXX”);でエラー
Could not find class ‘com.google.ads.AdView’, referenced from method com.AAA.bentannote2.MainActivity.onCreate
Admobのライブラリの挿入方法が教科書のヘルプであるグーグルの説明と異なり、変わったようです。
正しくは、
libs/GoogleAdMobAdsSdk-XXX.jarとなるように、GoogleAdMobAdsSdk-XXX.jarをコピーします。
私は手動で、コピペしました。
もし、すでに、教科書通りにGoogleAdMobAdsSdk-XXX.jarを挿入していたら、挿入済みを一旦削除してください。
すでに登録されているGoogleAdMobAdsSdk-XXX.jarがあるとエラーになります。
AdMobの使い方
Could not find class ‘com.google.ads.AdView’
(5)配列が初期化されていない
宣言だけして、初期化を忘れていました。
myArray=new ArrayList();
宣言をしたら、どこにでもいいのでまず、初期化を書くように習慣づけたいと思います。
—
(1)アイフォンアプリをアンドロイドアプリに移植、コード比較、変換方法
x-code,android アイフォンアプリを作ったのでアンドロイドアプリを作ってみよう
アンドロイドアプリなんて作ることはないと思ってました。
アンドロイドアプリを作成するのに、今度はJAVAを覚えなくてはならないという手間が嫌でした。それに、アンドロイドアプリを作っても果たしてダウンロードをする人がいるのか、作っても無駄な作業にナルト思っていました。
しかし、自分の作ったアイフォンアプリが比較的よくできたと思ってしまったので、アンドロイドアプリを作ることにしました。それに、自分が使うアプリなら、誰もダウンロードしてくれなくても、自分が使えていればそれで十分なのかもしれません。
まずは、作り方から勉強します。
内容と構成はアイフォンアプリと同じなので必要な機能を覚えて行きます。
まずは簡単なアプリからはじめます。
アイフォンアプリのx-codeと比較しながらメモをとっていきます。
いずれ、アンドロイドアプリの作り方をすぐに忘れてしまいます。忘れても良いように書いておきます。
<アイフォンアプリをアンドロイドに移植開発>
アイフォンアプリは、スマートボードを利用してViewを作成すると便利です。アンドロイドは、1アプリで画面展開を一覧表示する機能はないので、1View1画面毎に表示して、作業をします。
レイアウトXMLがView画面に相当し、JAVAクラスからでもオブジェクトを作成できます。
説明文中で、アイフォンアプリ、iOS, XCODE, objective-Cと書いた場合は、アイフォンアプリについての説明を記載したものです。アンドロイドアプリ、eclipse, JAVAと書いた場合は、アンドロイドアプリについての説明を記載したものです。
開発環境、開発言語と細かく区別せず大きな枠で説明しています。解釈上意味不明なところがあると思います。
1.ログ出力
アイフォンアプリ,XCODEのログ出力
NSLog(@”DB is OK”);
DB is OK
と出力されます。
↓
アンドロイド, JAVAのログ出力
画像
Log.d(“DB”, “OK”);
最初の引数はタグで、ログキャットのタグの列に表示されます。そして、第2引数はテキストの列に表示されます。
DB OK
として、列に別れて出力されます。こちらの方が見やすいかもしれません。
2.ボタンアクションコードの記載方法
XCODEの場合は、IBActionのメソッドに記載します。
JAVAの場合は、いくつかあります。
また、以下のコードは、少し、コードが長くなります。他にも、レイアウトxmlのボタンに記載してメソッドのように整理できる記載もあります。今回は書籍でよく見かけるコードにしました。
[c]
Button button;
button=(Button)findViewById(R.id.button1);
button.setOnClickListener(new View.ClickListerner(){
public void onClick(View v){
//here
}
});
[/c]
[c]
Button backButton;
backButton=(Button)findViewById(R.id.backButton);
backButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
[/c]
と、メソッドの引数の中に、メソッドがあるように記載します。
3.データベース SQLite3,CoreData
アイフォンでは、PCで事前に作成したSQLite3のファイルをそのまま利用して読み込みます。
書き込みは、CoreDataが利用できます。なお、CoreDataのエンティティ(テーブルみたいなもの)が増えた場合は、インストールしたアプリを削除しないとアプリが起動しない場合があります。
アンドロイド
データベースSQLite3のファイルを参照のみの利用でも、assetフォルダに保管し、使用するときにSQLite3ファイル自体を一旦コピーしてから利用します。
そして、assetフォルダに配置するファイルは1MB以下にする必要があるとのこと。大きすぎるファイルは要注意です。分割するか圧縮する必要があるようです。
参考サイト
[Android Programming] sqliteのDBファイルをPCでつくってandroidで使う – ipreachableの日記
既存のDBをAndroidで使えるようにする方法 – hentekoのdev日記
SQLiteからの結果をListViewに表示する
既存のsqliteファイルをAndroidに組み込む : ナカノ製作所開発備忘録
Y.A.M の 雑記帳: Android あらかじめ作成した SQLite database をアプリに取り込む
4.オブジェクト、ボタン、ラベル、テキストエディット
XCODEでは、ボタン等をViewに配置し、ヘッダーファイルにドラッグし紐付けします。プログラムで使用しないオブジェクトは紐付けの必要はありません。
JAVAでは、レイアウトのXMLで配置し、クラスに宣言、命令を記載します。
なお、異なるクラスでも同じレイアウトXMLを利用できます。
5.レイアウトVIewの他クラスの利用
アイフォン
オブジェクトを自由に好きなように配置できます。
アンドロイド
レイアウトのXMLに別のレイアウトXMLのオブジェクトを利用できる
レイアウトの自由度は低い。まるでウェブブラウザーで表示するhtmlファイルです。
ただし、様々な画像サイズのタブレットに対応できる柔軟性を持っていますが、デザイン性が低くなるかもしれません。
6.クラスをまたがって変数を共有する
XCODEでは、デリゲートを使用します。
JAVAでは、Applicationを継承したクラスを作ります。
Activityにまたがってグローバルに変数などのオブジェクトを共有するには
7.画像、音声ファイル
アイフォン
プロジェクトのどの場所でもよいですが、フォルダをプロジェクトに作ってわかりやすく配置します。
例えば、pic/back, number, buttonなど。
アンドロイド
resフォルダに保存し、音声ファイルはres/rawに保存します。
8.エミュレータ
アイフォン
アイフォン、iPadのエミュレータが起動します。
レティナ対応のiPadは大きすぎるので、縮小して表示します。特に難しい設定はありません。
アンドロイド
どのターゲットのエミュレータを起動するのか設定し実行します。
もし、エミュレータが実行しても、アプリが起動しない場合は、、、、、を選択します。
ここが一番わかりにくかったです。
9.文字列の取得
アンドロイド
strings.xmlの文字列を取得したいとき
getString(R.string.year) yearはH25年度として登録
10 レイアウトに配置されたTextViewに、文字配列を与えてListViewに表示する
アイフォン
テーブルビューを使用します。
アンドロイド
(1)は、レイアウトxmllistview_row.xmlに配置されたtextView1、textView2に、マップのquestion, answerの文字列をそれぞれ与えます。
そして、このコードにはありませんが、listview.xmlのListViewに表示させるものです。
(2)は、マップなしの単純なArrayListを、listview_row.xmlに配置されたtextView1に配置させるものです。
[c]
(1)SimpleAdapter simpleAdapter=new SimpleAdapter(this, globals.contactArrayList, R.layout.listview_row,new String[]{"question, answer"}, new int[]{R.id.textView1,R.id.textView2});
(2)adapterQuestionString=new ArrayAdapter<String>(this, R.layout.listview_row,R.id.listRowTextView,globals.arrayPartStrings);
[/c]
—
メタルギア ソリッド V グラウンド・ゼロズ 通常版(初回生産限定特典:本篇『MGSV:TPP』で使用可能なマザーベース スタッフDLC同梱&Amazon.co.jp限定特典:本篇『MGSV:TPP』で使用可能な特殊ダンボール箱DLC付き)プラットフォーム: PlayStation 4、発売予定日は2014年3月20日
Titan Fallタイタンフォール [オンラインコード] [ダウンロード]発売予定日時は2014年3月13日、ガンダムやバルキリー、装甲騎兵ボトムズみたいに人型ロボットに搭乗して敵を倒すゲーム、コックピットからのカメラ映像がリアリティがあり、まさに未来のロボットを操縦する感覚で遊べるゲーム
グラビアアイドル、清水みさと/恋して、みさと先生!

【GoPro HERO3+】LCDタッチ バックパック(リミテッドエディション)「ALCDB-303」在庫あり
「LCDタッチ バックパック」は、GoProカメラ用のLCDタッチスクリーンです。
カメラ背面に装着し、フレーミングや再生など、LCDスクリーンの利便性を提供します。
脱着式なので、不要な時は取り外してGoProカメラをできるだけ軽く小さくコンパクトにすることができます。