2017年03月18日

[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

2014年12月09日

[iOS] iOS8でUITableViewのセルどうしの境目で左側が切れるときの対処

iOS8でUITableViewを使っているときに、セルの境目の左側が15pxほど切れるのはデフォルトらしいということを知ったのですが、それでも画面左まで目一杯線を引きたいときの対処。

UITableViewの記載ルールについては割愛してます。

- (void)viewDidLoad {
...
// セパレーターの左端が切れないように
if ([self.tableView respondsToSelector:@selector(setSeparatorInset:)]) {
[self.tableView setSeparatorInset:UIEdgeInsetsZero];
}
self.tableView.separatorInset = UIEdgeInsetsZero;
if ([self.tableView respondsToSelector:@selector(layoutMargins)]) {
self.tableView.layoutMargins = UIEdgeInsetsZero;
}
...
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
...
// セパレーターの左端が切れないように
if ([cell respondsToSelector:@selector(separatorInset)]) {
cell.separatorInset = UIEdgeInsetsZero;
}
if ([cell respondsToSelector:@selector(preservesSuperviewLayoutMargins)]) {
cell.preservesSuperviewLayoutMargins = false;
}
if ([cell respondsToSelector:@selector(layoutMargins)]) {
cell.layoutMargins = UIEdgeInsetsZero;
}
...
}

参考:
http://dev.classmethod.jp/smartphone/iphone/ios-8-uitableview-layoutmargins/

これで少しハマった。。。
posted by be-style at 09:08| Comment(0) | Android

2014年04月03日

[Android] Eclipse 4.3 (Kepler)を入れてみた

前回の記事の続き。
Eclipse 4.3(Kepler)をインストールしてみたので、その手順をメモ。

※Android SDKは既にインストール済みという前提でお読みください



@日本語化したものをダウンロード

まずはサイト。
http://mergedoc.sourceforge.jp/

Eclipse 4.3 (Kepler)をクリック↓
20140403Eclipse01.png

自分の環境に合ったものを選択。
AndroidアプリをJavaで開発していることと、Windows7 64bit を使っているので、
赤枠のところを選択しました↓
20140403Eclipse02.png


Aダウンロードしたzipファイルを解凍
一部の解凍ツールだと、一部のファイルの解凍に失敗します。
自分が使うツールは「WinRAR」。

解凍すると、「pleiades」というディレクトリができるので、それを

C:\

に移動。
※保存先は特に決まりはないです

---------------------------------------------------------
■Program Files に保存したいときの注意
64bitのWindows7を使っていると、Program Files のディレクトリが2つあります。
使い分けに注意。

C:\Program Files    ← 64bit対応のツール
C:\Program Files (x86) ← 32bit対応のツール

手動でインストールするので、使い分けをしっかりしておかないとー。
---------------------------------------------------------


BEclipseをクリーンモードで起動

C:\pleiades\eclipse
にある
eclipse.exe -clean.cmd
をダブルクリックしてEclipseを起動します。
次からは「eclipse.exe」で起動して大丈夫です。
20140403Eclipse03.png

【注意】
Program FilesにEclipseを保存した場合はこの方法は使えません。
「eclipse.exe -clean.cmd」の中身を見てみると

start /d %~dp0 .\eclipse.exe -clean %*

となっています。
「Program Files」の中間にある半角スペースを「コマンドの区切り」と認識されてしまうようです^^;

そのときはコマンドプロンプトを使って自分で起動します。

cd C:\Program Files\pleiades\eclipse  ← 実行ファイルがあるディレクトリに移動
eclipse.exe -clean           ← クリーンコマンドで起動

起動するとワークスペースを聞かれるので、
特に決まっていなければデフォルトのまま。

20140403Eclipse04.png


CAndroidまわりの設定
Eclipseが起動したら、
メニュー > ヘルプ > 新規ソフトウェアのインストール を選択↓
20140403Eclipse05.png

[追加]をクリック↓
20140403Eclipse06.png

Keplerのプラグインが掲載されているページの情報をもとに、

https://dl.google.com/eclipse/plugin/4.3
を追加します。
名前は「ADTプラグイン」としました。
20140403Eclipse07.png

[OK]を押して前の画面に戻ると、インストール対象の一覧が表示されるので、
開発ツールと必須っぽい2つを選択しました。

・開発ツール
・Google App Engine Tools for Android(requires ADT)
・Google プラグイン(required)

20140403Eclipse08.png

インストールの確認画面。
おぉ、前回の記事ではインストールできなかった ADT 22.6.2 がインストールできそうだ!

20140403Eclipse09.png

インストールが完了するとEclipseの再起動を求められるので、Eclispseを再起動します。
再起動すると、警告画面が。
Android SDKのパスを設定してませんでしたorz

20140403Eclipse10.png

[設定を開く]を押して、Android SDKのパスを指定します。
※Android SDKの保存場所は人それぞれなので注意。
私の場合は「C:\android-sdk-windows」です。

20140403Eclipse11.png

[OK]を押して画面を閉じると、
設定したはずなのに再びAndroid SDKのパスを聞かれる。
もう一度設定。

20140403Eclipse12.png


DAndroidまわりがインストールされたかを確認
Eclipseのメニュー > ヘルプ > Eclipse についてを選択
20140403Eclipse13.png

インストール詳細をクリック↓
20140403Eclipse14.png

ADT22.6.2がインストールされてる!
20140403Eclipse15.png


これで無事、Eclipse 4.3(Kepler)のインストールとAndroidまわりの設定ができました。
さて、既存アプリは動くかなー。
posted by be-style at 10:54| Comment(0) | Android

[Android] ADTがアップデートできない?

SDK ManagerでAndroid SDKをアップデートした後にEclipse3.6(Helios)を起動したところ、
「更新があります」とウィンドウが表示されました。

次に、「使用可能な更新」が表示されるのですが

Cannot complete the install because one or more required items could not be found.

というエラーメッセージが表示されて先に進めません↓

20140402ADTアプデ01.png

対処法を調べたら、
「新しいソフトウェアのリソース元」に誤りがあるようです↓

http://www.garunimo.com/program/p14.xhtml

ダメでした。
ならば、直接ADTをダウンロードしてインストールを試みました↓

ADT最新版:
http://developer.android.com/sdk/installing/installing-adt.html
※2014/4/3時点での最新版はADT-22.6.2.zip

でもダメ。
Googleのホームページを見てみたところ、
Eclipse 3.7(Indigo)以上しか掲載されてない!

https://developers.google.com/eclipse/docs/getting_started?hl=ja

もしかしたら、Eclipse 3.6(Helios)は対象外になったのかも?

こちらは、Eclipse 3.5(Galileo)でサポート外になったときの記事です↓
http://d.hatena.ne.jp/zabi/20130429

Eclipse 3.6(Helios)で、ADT-22.6.2 にバージョンアップできた人はいるのかなー。
調べても見つけられなかったので、諦めてEclipse 4.3(Kepler)をインストールしてみます↓

http://mergedoc.sourceforge.jp/

Eclipseのバージョンを上げることで、これまでのアプリが動かなくならないか心配です。。。
posted by be-style at 07:56| Comment(0) | Android

2013年12月22日

[Android] Google Play Service を導入してみた

100マス計算Google Play Serviceを使いました。

これまで、ランキングと実績は「Pankia」を利用していましたが、
Androidを扱っているGoogleなら今後も安心できそうなので切替えました。

実装方法はこのサイトを参考にしました↓

・Corona SDKでGoogle Play Game Servicesを使ってみた。
http://dat.plastica-romantica.com/log751.html

・Google Game Service 実装時のまとめ Android
http://blog.77jp.net/google-game-service-develop-android

・【Android】Google Play Game Servicesを試してみたい#1〜#5
http://kforce-ueda.hatenablog.com/entry/2013/09/12/223912


ハマった点だったり、注意しなくちゃと思った点は、

@テスト用とリリース用で登録するキーストアが異なる
→テストでうまくいっても、リリース後にGooglePlayServiceを利用できない

【デバッグ用のフィンガープリントを取得するときのDOSコマンド】
keytool -exportcert -alias [デバッグ用キー] -keystore [デバッグ用キーストアdebug.keystore] -list -v
※リリース用には別途リリース用のキーストアで作成する必要あり
→これを忘れてリリースしてしまい動作しませんでした orz
→慌ててリリース用キーストアでフィンガープリントを取得&管理画面から追加登録して事なきを得ました

リリース後にデバッグ用のフィンガープリントを使ってGoogle Play Serviceを使おうとすると
こんなエラーが出ました↓
---------------------------------------------------
ot.a: Unexpected response code 403 for https://www.googleapis.com/games/v1/players/me
---------------------------------------------------
実機の画面はこんな感じ↓
20131220hundred010.png


AGoogle Play Serviceは Android SDK Manager から最新版をDLしておくこと
→EclipseのUpdateも忘れずに!


B既存のAdMob広告があると、Google Play Service ライブラリ内のAdMobライブラリと競合する。
→既存AdMobライブラリの使用を止めて、Google Play Service内のAdMobライブラリを使用
【参考】
https://gist.github.com/matsumo/7314819


Cリリース時にはGoogle Play Service を「公開」にしておくこと

この状態でテストしたままだと、リリースしても動かない↓
20131220hundred006.png

Google Play Service を「公開」にするとこうなる↓
20131220hundred008.png

ステータスも「公開中」にっ!
20131220hundred009.png



@で苦戦した以外は、スムーズに作業は進みました。


プログラムで使った命令はこれくらい。

-------------------------------------------------------
// サインインする
beginUserInitiatedSignIn();

// サインアウトする
signOut();

// サインインしているか
isSignedIn();

// リーダーボードにスコアを送信
getGamesClient().submitScore([リーダーボードのID(文字列)], [LONG型のスコア]);

// リーダーボードを表示
final int RC_UNUSED = 5001; ※参考サイトを参考
startActivityForResult(getGamesClient().getAllLeaderboardsIntent(), RC_UNUSED);

// 実績を開放
getGamesClient().unlockAchievement([実績のID(文字列));

// 実績を表示
startActivityForResult(getGamesClient().getAchievementsIntent(), RC_UNUSED);
-------------------------------------------------------

他にも色々な命令があるので機会があれば使ってみたい。
セーブデータを保存する機能もあるらしいので、こちらも気になります。

ただ、Google Play Service を利用するためには Google+ のアカウントが必要です。
Google+ って実名登録なので、利用する人は減りそう……。

まずはやってみないとね!
posted by be-style at 19:47| Comment(0) | Android