2017年03月18日

[Android] gradle の com.android.support:appcompat-v7: に何を書いていいのかわからない

Android Studio を使っていると、gradle を使ってビルドするときに
dependencies の compile にある「com.android.support:appcompat-v7」
にどのバージョンを書けばよいのかわからなくなるときがあります。

↓例
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.2.1'  ← どのバージョンかわからなくなる
}

そんなときは、SDKマネージャーを見るとわかります。

SDK Manager > Appearance & Behavior > System Settings > Android SDK > SDK Tools
にある
Android Support Library, rev xx.x.x

スクリーンショット 2017-03-18 15.13.56.png

ここのバージョンを使います。

参考:
http://woshidan.hatenadiary.jp/entry/2015/09/28/233823

posted by be-style at 15:21| Comment(0) | Android

[Android] Android Studio を 1.5 から 2.3 にアップグレードしたら、ビルドエラーになる

Android Studio を 1.5 から 2.3 にアップグレードしたらビルドエラーが
出るようになりました。

その対策を備忘メモ。

OSは、MacOS Sierra 10.12.1。

Android Studio のダウンロード元:
https://developer.android.com/studio/index.html

ここから、最新版の .dmg ファイルをダウンロード。
ダブルクリックしてインストール。

アップデートはスムーズにできたのですが、作っていたプロジェクトでビルドエラーが
出るようになりました。

--------------------------------------------
Error:(1, 1) A problem occurred evaluating project ':app'.
> java.lang.UnsupportedClassVersionError: com/android/build/gradle/AppPlugin : Unsupported major.minor version 52.0
--------------------------------------------

Java JDK 1.7 → 1.8 に変更することで解消。

File->Other Settings->Default Project Structure->SDKs

↓画面の下の方に警告がでているので
スクリーンショット 2017-03-18 12.23.08.png

↓JDK1.8 に変更
スクリーンショット 2017-03-18 12.23.27.png

↓警告が消えました
スクリーンショット 2017-03-18 12.23.38.png

参考:
http://stackoverflow.com/questions/35937875/unsupported-major-minor-version-52-0-when-rendering-in-android-studio

posted by be-style at 15:08| Comment(0) | Android

2017年02月02日

[Unity] SimpleSQL(アセット)で日本語をINSERT/UPDATEできないときの対処

UnityでSQLを扱いたいときに、SimpleSQL(有料アセット)を使っています。
https://www.assetstore.unity3d.com/jp/#!/content/3845

無料の SQLiteUnityKit もあるのですが、
更新が止まっていることと、自分でカスタマイズできるものの色々と
手間がかかるしややこしいという点から、アセットを購入することにしました。

ですが、日本語をINSERTしようとしたときにエラーが出てしまいました。

"Insert" を使った場合:
-------------------------------------------
SQLiteException: Constraint
SimpleSQL.PreparedSqlLiteInsertCommand.ExecuteNonQuery (System.Object[] source)
SimpleSQL.SQLiteConnection.Insert (System.Object obj, System.String extra, System.Type objType, System.Int64& rowID)
SimpleSQL.SQLiteConnection.Insert (System.Object obj, System.Int64& rowID)
SimpleSQL.SimpleSQLManager.Insert (System.Object obj, System.Int64& rowID)
SimpleSQL.SimpleSQLManager.Insert (System.Object obj)
-------------------------------------------

"Execute" を使った場合:
-------------------------------------------
SQLiteException: unrecognized token: "'20"
SimpleSQL.SQLite3.Prepare2 (IntPtr db, System.String query)
SimpleSQL.SQLiteCommand.Prepare ()
SimpleSQL.SQLiteCommand.ExecuteNonQuery ()
SimpleSQL.SQLiteConnection.Execute (System.String query, System.Object[] args)
SimpleSQL.SimpleSQLManager.Execute (System.String query, System.Object[] args)
-------------------------------------------

サポートに問い合わせたら、SQL内で日本語を記述するところに「?」を書き、
Execute()の第2引数以降で渡せばよいと回答がありました。
フォーラムに過去のやりとりが記載されていました。

http://www.echo17.com/forum/index.php?topic=257.msg399#msg399

例)
SimpleSQL.SimpleSQLManager dbManager;
// ゲームオブジェクトにSimpleSQLManagerが適用されていること
dbManager = this.GetComponent();
string query = "INSERT INTO TEST(name) values(?)";
dbManager.Execute(query, "テスト");

これで無事、日本語を扱うことができるようになりました。
posted by be-style at 21:53| Comment(0) | Unity