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
↓画面の下の方に警告がでているので
↓JDK1.8 に変更
↓警告が消えました
参考:
http://stackoverflow.com/questions/35937875/unsupported-major-minor-version-52-0-when-rendering-in-android-studio
2017年03月18日
[Android] Android Studio を 1.5 から 2.3 にアップグレードしたら、ビルドエラーになる
posted by be-style at 15:08| Comment(0)
| Android
2014年12月09日
[iOS] iOS8でUITableViewのセルどうしの境目で左側が切れるときの対処
iOS8でUITableViewを使っているときに、セルの境目の左側が15pxほど切れるのはデフォルトらしいということを知ったのですが、それでも画面左まで目一杯線を引きたいときの対処。
UITableViewの記載ルールについては割愛してます。
参考:
http://dev.classmethod.jp/smartphone/iphone/ios-8-uitableview-layoutmargins/
これで少しハマった。。。
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)をクリック↓
自分の環境に合ったものを選択。
AndroidアプリをJavaで開発していることと、Windows7 64bit を使っているので、
赤枠のところを選択しました↓
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」で起動して大丈夫です。
【注意】
Program FilesにEclipseを保存した場合はこの方法は使えません。
「eclipse.exe -clean.cmd」の中身を見てみると
start /d %~dp0 .\eclipse.exe -clean %*
となっています。
「Program Files」の中間にある半角スペースを「コマンドの区切り」と認識されてしまうようです^^;
そのときはコマンドプロンプトを使って自分で起動します。
cd C:\Program Files\pleiades\eclipse ← 実行ファイルがあるディレクトリに移動
eclipse.exe -clean ← クリーンコマンドで起動
起動するとワークスペースを聞かれるので、
特に決まっていなければデフォルトのまま。
CAndroidまわりの設定
Eclipseが起動したら、
メニュー > ヘルプ > 新規ソフトウェアのインストール を選択↓
[追加]をクリック↓
Keplerのプラグインが掲載されているページの情報をもとに、
https://dl.google.com/eclipse/plugin/4.3
を追加します。
名前は「ADTプラグイン」としました。
[OK]を押して前の画面に戻ると、インストール対象の一覧が表示されるので、
開発ツールと必須っぽい2つを選択しました。
・開発ツール
・Google App Engine Tools for Android(requires ADT)
・Google プラグイン(required)
インストールの確認画面。
おぉ、前回の記事ではインストールできなかった ADT 22.6.2 がインストールできそうだ!
インストールが完了するとEclipseの再起動を求められるので、Eclispseを再起動します。
再起動すると、警告画面が。
Android SDKのパスを設定してませんでしたorz
[設定を開く]を押して、Android SDKのパスを指定します。
※Android SDKの保存場所は人それぞれなので注意。
私の場合は「C:\android-sdk-windows」です。
[OK]を押して画面を閉じると、
設定したはずなのに再びAndroid SDKのパスを聞かれる。
もう一度設定。
DAndroidまわりがインストールされたかを確認
Eclipseのメニュー > ヘルプ > Eclipse についてを選択
インストール詳細をクリック↓
ADT22.6.2がインストールされてる!
これで無事、Eclipse 4.3(Kepler)のインストールとAndroidまわりの設定ができました。
さて、既存アプリは動くかなー。
Eclipse 4.3(Kepler)をインストールしてみたので、その手順をメモ。
※Android SDKは既にインストール済みという前提でお読みください
@日本語化したものをダウンロード
まずはサイト。
http://mergedoc.sourceforge.jp/
Eclipse 4.3 (Kepler)をクリック↓
自分の環境に合ったものを選択。
AndroidアプリをJavaで開発していることと、Windows7 64bit を使っているので、
赤枠のところを選択しました↓
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」で起動して大丈夫です。
【注意】
Program FilesにEclipseを保存した場合はこの方法は使えません。
「eclipse.exe -clean.cmd」の中身を見てみると
start /d %~dp0 .\eclipse.exe -clean %*
となっています。
「Program Files」の中間にある半角スペースを「コマンドの区切り」と認識されてしまうようです^^;
そのときはコマンドプロンプトを使って自分で起動します。
cd C:\Program Files\pleiades\eclipse ← 実行ファイルがあるディレクトリに移動
eclipse.exe -clean ← クリーンコマンドで起動
起動するとワークスペースを聞かれるので、
特に決まっていなければデフォルトのまま。
CAndroidまわりの設定
Eclipseが起動したら、
メニュー > ヘルプ > 新規ソフトウェアのインストール を選択↓
[追加]をクリック↓
Keplerのプラグインが掲載されているページの情報をもとに、
https://dl.google.com/eclipse/plugin/4.3
を追加します。
名前は「ADTプラグイン」としました。
[OK]を押して前の画面に戻ると、インストール対象の一覧が表示されるので、
開発ツールと必須っぽい2つを選択しました。
・開発ツール
・Google App Engine Tools for Android(requires ADT)
・Google プラグイン(required)
インストールの確認画面。
おぉ、前回の記事ではインストールできなかった ADT 22.6.2 がインストールできそうだ!
インストールが完了するとEclipseの再起動を求められるので、Eclispseを再起動します。
再起動すると、警告画面が。
Android SDKのパスを設定してませんでしたorz
[設定を開く]を押して、Android SDKのパスを指定します。
※Android SDKの保存場所は人それぞれなので注意。
私の場合は「C:\android-sdk-windows」です。
[OK]を押して画面を閉じると、
設定したはずなのに再びAndroid SDKのパスを聞かれる。
もう一度設定。
DAndroidまわりがインストールされたかを確認
Eclipseのメニュー > ヘルプ > Eclipse についてを選択
インストール詳細をクリック↓
ADT22.6.2がインストールされてる!
これで無事、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.
というエラーメッセージが表示されて先に進めません↓
対処法を調べたら、
「新しいソフトウェアのリソース元」に誤りがあるようです↓
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のバージョンを上げることで、これまでのアプリが動かなくならないか心配です。。。
「更新があります」とウィンドウが表示されました。
次に、「使用可能な更新」が表示されるのですが
Cannot complete the install because one or more required items could not be found.
というエラーメッセージが表示されて先に進めません↓
対処法を調べたら、
「新しいソフトウェアのリソース元」に誤りがあるようです↓
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
---------------------------------------------------
実機の画面はこんな感じ↓
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 を「公開」にしておくこと
この状態でテストしたままだと、リリースしても動かない↓
Google Play Service を「公開」にするとこうなる↓
ステータスも「公開中」にっ!
@で苦戦した以外は、スムーズに作業は進みました。
プログラムで使った命令はこれくらい。
-------------------------------------------------------
// サインインする
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+ って実名登録なので、利用する人は減りそう……。
まずはやってみないとね!
これまで、ランキングと実績は「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
---------------------------------------------------
実機の画面はこんな感じ↓
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 を「公開」にしておくこと
この状態でテストしたままだと、リリースしても動かない↓
Google Play Service を「公開」にするとこうなる↓
ステータスも「公開中」にっ!
@で苦戦した以外は、スムーズに作業は進みました。
プログラムで使った命令はこれくらい。
-------------------------------------------------------
// サインインする
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