WINDOWS10 SQLITEインストール
https://qiita.com/tabizou/items/af8687201961e4d6b8a4
PHPでSQLITEを使う
https://techacademy.jp/magazine/19153
WINDOWS10 SQLITEインストール
https://qiita.com/tabizou/items/af8687201961e4d6b8a4
PHPでSQLITEを使う
https://techacademy.jp/magazine/19153
UnityでSQLiteの使い方
UnityにSQLiteを導入する
https://qiita.com/CreateVector3/items/b15dc570faed517360d4
UnityでSQLiteを扱う方法
https://qiita.com/hiroyuki7/items/5335e391c9ed397aee50
UnityでSQLite!SQLiteUnityKitに潜む4つの問題点と対応方法
https://fantastic-works.com/archives/406#i-3
UnityのSQLiteUnityKitのマルチバイト問題 (。・ω・。)
https://anz-note.tumblr.com/post/91559515821/unity%E3%81%AEsqliteunitykit%E3%81%AE%E3%83%9E%E3%83%AB%E3%83%81%E3%83%90%E3%82%A4%E3%83%88%E5%95%8F%E9%A1%8C-%CF%89
アイフォンアプリをアンドロイドアプリに移植中です。
アイフォンの開発言語はobjective-cで、アンドロイドはJAVA言語になります。JAVAをベースにしてアンドロイドアプリをつくるとしてもアンドロイドアプリのための固有の開発方法がありそうです。
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″
しました。
EclipseからAndroidエミュレータを起動してもアプリが実行されない
この記事を参考にしてようやくハローワールドが表示されました。
AndroidActivity.xmlに
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’
宣言だけして、初期化を忘れていました。
myArray=new ArrayList
宣言をしたら、どこにでもいいのでまず、初期化を書くように習慣づけたいと思います。
—
x-code,android アイフォンアプリを作ったのでアンドロイドアプリを作ってみよう
アンドロイドアプリなんて作ることはないと思ってました。
アンドロイドアプリを作成するのに、今度はJAVAを覚えなくてはならないという手間が嫌でした。それに、アンドロイドアプリを作っても果たしてダウンロードをする人がいるのか、作っても無駄な作業にナルト思っていました。
しかし、自分の作ったアイフォンアプリが比較的よくできたと思ってしまったので、アンドロイドアプリを作ることにしました。それに、自分が使うアプリなら、誰もダウンロードしてくれなくても、自分が使えていればそれで十分なのかもしれません。
まずは、作り方から勉強します。
内容と構成はアイフォンアプリと同じなので必要な機能を覚えて行きます。
まずは簡単なアプリからはじめます。
アイフォンアプリのx-codeと比較しながらメモをとっていきます。
いずれ、アンドロイドアプリの作り方をすぐに忘れてしまいます。忘れても良いように書いておきます。
アイフォンアプリは、スマートボードを利用してViewを作成すると便利です。アンドロイドは、1アプリで画面展開を一覧表示する機能はないので、1View1画面毎に表示して、作業をします。
レイアウトXMLがView画面に相当し、JAVAクラスからでもオブジェクトを作成できます。
説明文中で、アイフォンアプリ、iOS, XCODE, objective-Cと書いた場合は、アイフォンアプリについての説明を記載したものです。アンドロイドアプリ、eclipse, JAVAと書いた場合は、アンドロイドアプリについての説明を記載したものです。
開発環境、開発言語と細かく区別せず大きな枠で説明しています。解釈上意味不明なところがあると思います。
アイフォンアプリ,XCODEのログ出力
NSLog(@”DB is OK”);
DB is OK
と出力されます。
↓
アンドロイド, JAVAのログ出力
画像
Log.d(“DB”, “OK”);
最初の引数はタグで、ログキャットのタグの列に表示されます。そして、第2引数はテキストの列に表示されます。
DB OK
として、列に別れて出力されます。こちらの方が見やすいかもしれません。
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]
と、メソッドの引数の中に、メソッドがあるように記載します。
アイフォンでは、PCで事前に作成したSQLite3のファイルをそのまま利用して読み込みます。
書き込みは、CoreDataが利用できます。なお、CoreDataのエンティティ(テーブルみたいなもの)が増えた場合は、インストールしたアプリを削除しないとアプリが起動しない場合があります。
アンドロイド
データベースSQLite3のファイルを参照のみの利用でも、assetフォルダに保管し、使用するときにSQLite3ファイル自体を一旦コピーしてから利用します。
そして、assetフォルダに配置するファイルは1MB以下にする必要があるとのこと。大きすぎるファイルは要注意です。分割するか圧縮する必要があるようです。
参考サイト
[Android Programming] sqliteのDBファイルをPCでつくってandroidで使う – ipreachableの日記
既存のDBをAndroidで使えるようにする方法 – hentekoのdev日記
既存のsqliteファイルをAndroidに組み込む : ナカノ製作所開発備忘録
Y.A.M の 雑記帳: Android あらかじめ作成した SQLite database をアプリに取り込む
XCODEでは、ボタン等をViewに配置し、ヘッダーファイルにドラッグし紐付けします。プログラムで使用しないオブジェクトは紐付けの必要はありません。
JAVAでは、レイアウトのXMLで配置し、クラスに宣言、命令を記載します。
なお、異なるクラスでも同じレイアウトXMLを利用できます。
アイフォン
オブジェクトを自由に好きなように配置できます。
アンドロイド
レイアウトのXMLに別のレイアウトXMLのオブジェクトを利用できる
レイアウトの自由度は低い。まるでウェブブラウザーで表示するhtmlファイルです。
ただし、様々な画像サイズのタブレットに対応できる柔軟性を持っていますが、デザイン性が低くなるかもしれません。
XCODEでは、デリゲートを使用します。
JAVAでは、Applicationを継承したクラスを作ります。
Activityにまたがってグローバルに変数などのオブジェクトを共有するには
アイフォン
プロジェクトのどの場所でもよいですが、フォルダをプロジェクトに作ってわかりやすく配置します。
例えば、pic/back, number, buttonなど。
アンドロイド
resフォルダに保存し、音声ファイルはres/rawに保存します。
アイフォン
アイフォン、iPadのエミュレータが起動します。
レティナ対応のiPadは大きすぎるので、縮小して表示します。特に難しい設定はありません。
アンドロイド
どのターゲットのエミュレータを起動するのか設定し実行します。
もし、エミュレータが実行しても、アプリが起動しない場合は、、、、、を選択します。
ここが一番わかりにくかったです。
アンドロイド
strings.xmlの文字列を取得したいとき
getString(R.string.year) yearは
アイフォン
テーブルビューを使用します。
アンドロイド
(1)は、レイアウトxmllistview_row.xmlに配置されたtextView1、textView2に、マップのquestion, answerの文字列をそれぞれ与えます。
そして、このコードにはありませんが、listview.xmlのListViewに表示させるものです。
(2)は、マップなしの単純なArrayList
[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カメラをできるだけ軽く小さくコンパクトにすることができます。
今日のエラー アイフォンアプリ制作のSQLite3を使ってDB、エラー
sqlite3_step エラーで検索して得たネット検索の一部抜粋
実機確認で正常に動作しない場合の対処
「
databaseName=@”Data.db3″
NSArray *paths = NSSearchPathForDirectoriesInDomains
(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDir = [paths objectAtIndex:0];
NSString *dbPath =
[documentsDir stringByAppendingPathComponent:databaseName];
これでどうでしょうか。
現在のフォルダは・・・/iPhone Simulator/4.1ですのでシミュレータのみになると思います。
」
www.sqlite.org column
const unsigned char *sqlite3_column_text(sqlite3_stmt*, int iCol);
iPhoneアプリ開発、その(81) いくぜ解析SQLiteBooks!
>このブログを参考にさせてもらいました。自分のselect文が間違っている様な気がしてきました。いままで、SQLite3のDBファイルが悪い、間違いと思っていましたが、単に、勘違いをしているように思います。
正常にDBからカラム列を取得できていません。
今のところで考えられる原因は、
「DBファイルSQLite3ファイルが正しく作成できていない。」
と考えていました。
他のコードは本を参考にしているし、ほんのソースは実行できている。
では、自分で作成したテーブルを確認します。
現在のテーブルは3つのカラム列があります。
テーブル名はcd
フィールド名はそれぞれ
card_id, fore, back
そこで、セレクト文を以下のようにして、comlumnで取得しようとしました。
(1)select card_id form cd; 1つのカラム列を取得したい
(1-2)select back from cd; 1つのカラム列を取得したい
(2)select card_id,fore,back from cd; 3つのカラム列を取得したい
全部エラーとなってDBから情報を取得できていません。
<検証してみましょう。>
・具体的な指定
(1)select card_id form cd;とした場合
sqlite3_column_int(statement,0);//3つのカラム列の1番目で0
(1-2)select back from cd;とした場合
誤り? sqlite3_column_int(statement,2);//3つのカラム列の3番目で2
正 sqlite3_column_int(statement,0);//3つのカラム列の3番目で2であるが、セレクト文で指定したのは一つなので、0???
(2)select card_id,fore,back from cd;
(1-2)の例で行けば、
ここで、”back”の値を取得したいとすれば、
sqlite3_column_int(statement,2);//3つのカラム列の3番目でセレクト文でカラム列を3つ指定しているので、その指定が、0,1,2とする。
つまり、
sqlite3_column_int(sqlite3_stmt*, int iCol)の
int iColは、セレクト文の指定カラム列から取得したカラム列の順番の番号-1ということでしょうか。
なので、いままで、テーブルに設定されたカラム列の順番をint iColに指定してきました。
そのため、例えば、
(1-2)select back from cd;のように、セレクト文を指定して、これは、指定が1つしかないので、本来は”0”なのですが、テーブルに設定されたカラム列の順番から考えると3-1=2なので
sqlite3_column_int(statement,2);とするとNULLが返ってきて
セレクト文は1つなので、
sqlite3_column_int(statement,0);が正しい。
なのでしょうか?
試してみます。
1.SQLite3のファイルは問題なし。
2.sqlite3_column_int(sqlite3_stmt*, int iCol)の
int iColは、Select文で指定するカラム列を基準に考える。DBのカラム列の順番ではない。
つまり、指定する番号である値をセレクト文に合わせて変更していなかったことが原因であり、勘違いしていたという思い込みでした。
3.思い込みを無くして、正しくAPI、関数を理解しましょう。
4.悩んだところにこだわるのは、1,2日間まで。それ以上は他の部分を先に進めましょう。
時間のある時にじっくりと調べればよいのです。
解決しても大局からすれば、ほんの僅かな成果しかありません。
プログラムは動いてこそ意味があります。プログラムの研究をしているのではありません。動かしたいのです。
SQLiteの利用
sqliteは、マックに標準でインストールされているようです。
ターミナルから
$ sqlite3(リターン)
DBファイルを作るときは
$ sqlite3 sample.sqlite3(DBファイルを指定してリターンするとファイルが作成される)
続きを読む