2014年12月13日土曜日

Android Studioを0.8.14 → 1.0.0 に変更でハマったこと

環境:OS X Mavericks 10.9.5
Android Studio
0.8.14 → 1.0.0に変更


ダウンロード


  • build.gradleのAndroid Gradle Plugin のバージョンの記述が自動で書き換えられた(0.12.+ → 1.0.0)
  • gradle/wrapper/gradle-wrapper.propertiesが自動更新された
  • gradle/wrapper/gradle-wrapper.jarが自動更新された

以下、ハマったところ

mavenrepoのエラー

Error:Gradle DSL method not found 'mavenrepo()’

対処

mavenRepo urls: [
    "http://hogehoge” 
]
maven {
    url 'http://hogehoge'
}

buildTypesでエラー

Android Gradle Plugin 0.14.0でプロパティの名称が変わっている
  • BuildType.runProguard -> minifyEnabled
  • BuildType.zipAlign -> zipAlignEnabled
  • BuildType.jniDebugBuild -> jniDebuggable
  • BuildType.renderscriptDebug -> renderscriptDebuggable
  • ProductFlavor.renderscriptSupportMode -> renderscriptSupportModeEnabled
  • ProductFlavor.renderscriptNdkMode -> renderscriptNdkModeEnabled

Compileの記述エラー

Error:Could not find property on project ‘:(プロジェクト名)’

対処

tasks.withType(Compile) { options.encoding = "UTF-8" }
tasks.withType(JavaCompile) { options.encoding = "UTF-8" }

wrapperのエラー

Error:Cannot create task of type “Wrapper” as it does not implement the Task interface.

Android Studioのbuild.gradleには、Gradleラッパーの生成用のタスクの記述はにいらなかった!

対処

下記記述削除

task wrapper(type: Wrapper) {
gradleVersion = ‘1.10'
}


他参考

Android StudioのバージョンとAndroid Gradle Pluginのバージョンと


2014年11月26日水曜日

ローカルブランチとリモートブランチの紐付け

ローカルブランチとリモートブランチの紐付けの新規設定(または変更)


$ git branch (ローカルブランチ名) -u origin/(リモートブランチ名)


各ローカルブランチのリモートブランチへの紐付け状態の確認


$ git branch -vv

2014年11月22日土曜日

Androidの各アイコンサイズ一覧など(ちょこっとWearにも触れてます)

Androidの各アイコンサイズ一覧

種類 アプリアイコン
(ランチャーアイコン)
アクションバーの
メニューアイコン
通知
アイコン
通知アクション用
アイコン※1
dpi48×48dp32×32dp※2
(実描画:24dp)
24×24dp※2
(実描画:22dp)
32×32dp※2※3
(実描画:24dp)
Playストア用512×512px---
xxxhdpi(×4)192×192px128×128px
(96×96px)
96×96
(88×88px)
128×128px
(96×96px)
xxhdpi(×3)144×144px96×96px
(72×72px)
72×72px
(66×66px)
96×96px
(72×72px)
xhdpi(×2)96×96px64×64px
(48×48px)
48×48px
(44×44px)
64×64px
(48×48px)
hdpi(×1.5)72×72px48×48px
(36×36px)
36x36px
(33×33px)
48×48px
(36×36px)
mhdpi(標準)48×48px32x32px
(24×24px)
24x24px
(22×22px)
32x32px
(24×24px)

※1.通知のアクションの機能はAndroid4.1(API16)に追加された機能になります。
※2.エリアサイズと実描画(内枠)があり、画像内に余白が必要になります。(詳しくは下記へ)
※3.Wear用の通知アクション用アイコンは、通常の2倍のサイズとなります。(詳しくは下記へ)

アイコンのエリアサイズと実描画(内枠)について

例:
アクションバーのメニューアイコンのmhdpi(標準)のとき
  • エリアサイズが32×32px
  • 実描画が24×24px
なので、
  • 画像のサイズ … 32×32px
  • 画像内の余白(パディング) … 上下左右に4px
  • 実描画の領域 … 中央に24×24px

となります。


Wear用の通知アクション用アイコンのサイズについて

Wear用の通知アクション用アイコンは、通常の通知アクション用アイコンと比べ、2倍のサイズとなります。

よって、64×64dp(実描画:48×48dp)となり、
xxhdpiだと192×192px(148×148px)になります。

アイコンは、NotificationCompat.Actionや、NotificationCompat.WearableExtender#addActionを利用して設定します。


例:

final NotificationCompat.Builder builder = new NotificationCompat.Builder(context);


NotificationCompat.WearableExtender wearableExtender = new NotificationCompat.WearableExtender();
wearableExtender.addAction(new NotificationCompat.Action.Builder(R.drawable.ic_wear_action_icon, "タイトル", pendingIntent).build());
builder.extend(wearableExtender);


参考:Android Wear に Notification で出来ることhttp://y-anz-m.blogspot.jp/2014/07/android-wear-notification.html

2014年11月16日日曜日

UbuntuでもAndroid Studio0.8.14へアップデート

この前書いたブログ(Android Studio0.8.14へアップデート時にハマったこと)の警告ダイアログが、
Ubuntuの環境でも出ました。


環境:ubuntu 14.04 LTS
Android Studio
0.8.9 → 0.8.14にアップデート


0.8.14にアップデートしようとすると、次の警告のダイアログが出ます。


The Android SDK folder can no longer be inside the application folder .
Please move it to a different location such as your home folder.

sdkフォルダの場所が不適切なので、移動が必要しましょう、とのことです。
初期配置が、Android Studioのアプリフォルダ内になっているので、移動が必要になります。


SDKフォルダの移動し、Retryを選択

警告ダイアログをそのままの状態にし、SDKフォルダを移動します。
Exitを押した時は、SDKフォルダを移動して、再度アップデートを行えば大丈夫です。

$ mv ~/app/android-studio/sdk/ ~/android_sdk/

移動したら、「Retry」を選択


更にダイアログ


Some conflicts were found in the installation area.

Please select desired solutions from the Solution column and press Proceed.
If you do not want to proceed with the update, please press Cancel.

設置場所にいくつかの競合があります。

項目を選択し「Proceed」を押してください。
アップデートを続行したくないときはキャンセルしてください。


とのことです。
今回はログファイルを消すだけのようなので、「Proceed」を押して、アップデート続行


以上でアップデート完了!


再度、Android Studioを開くと次の警告が表示されます。



SDKの移動先を選択します。
今回は、(ホームディレクトリ)/android_sdkになります。

設定確認は
File > Project Structure... > SDK Location > Android SDK location


で行えます。

2014年11月13日木曜日

Android Studio0.8.14へアップデート時にハマったこと

Ubuntu用も書きました→UbuntuでもAndroid Studio0.8.14へアップデート
(あんまり内容変わりません)

環境:mac OSX 10.9.5
Android Studio
0.8.9 → 0.8.14にアップデート時

0.8.14へのアップデートで少しハマりました。


The Android SDK folder can no longer be inside the application folder .
Please move it to a different location such as your home folder.

アプリケーションフォルダ(Android Studio.app)内にsdkフォルダがある状態は不適切なので、移動しましょう、とのことです。
SDKフォルダの初期配置が、Android Studio.app内になっているので、移動が必要になります。

SDKフォルダの移動

いったんExitを選択し、
Android Studio.app内にあるSDKのフォルダを任意の場所に移動

$ mkdir ~/android
$ mv /Applications/Android\ Studio.app/sdk/ ~/android/sdk

再度、Android Studioを開くと次の警告が表示されます。

SDKの移動先を選択します。
今回は、(ホームディレクトリ)/android/sdkになります。

設定確認は
File > Project Structure... > SDK Location > Android SDK location
で行えます。

再度アップデートの実行

(Android Studio > Check For Updates... で「Update and Restart」を選択)

Some conflicts were found in the installation area.
Please select desired solutions from the Solution column and press Proceed.

と、ログファイル消すよ!ってダイアログが出たので、Proceedを押して、アップデートを続行します。


以上で、0.8.14にアップデートできました!


iOS向けのプロジェクトを初めて作成してみた(Swift)

こちらを参考に、iOS向けのプロジェクトを初めて作成してみました。
とても分かり易かったです。

やったこと


  1. Xcode6のインストール
  2. 新規プロジェクト作成
  3. シミュレーターへRun


1. Xcode6のインストール


https://itunes.apple.com/jp/app/xcode/id497799835?mt=12
ここからXcodeをインストールします。
現状の最新版の6.1をインストールしました。
Swift対応のバージョンは6.0以降になります。

2. 新規プロジェクト作成


  • Xcodeを起動し、「Create a new Xcode project」を選択
  • iOS > Application > Single View Application を選択し「Next」を押す
  • Languageに「Swift」、Devicesに「iPhone」を選択、「Use Core Data」はチェック入れずに「Next」を押す
  • プロジェクト作成場所を選択で、作成完了

※この段階で出てくる「Product Name」「Organization Name」「Organization Identifier」「Bundle Identifer」について


  • Product Name … プロジェクト名
  • Organization Name … 会社名、団体名など。省略可
  • Organization Identifier … Androidでいうドメイン名の指定
  • Bundle Identifer … Androidでいうパッケージ名。「Organization Identifier」+「Product Name」で設定される


3. シミュレーターへRun

左上にある再生ボタンで、アプリを実行。
シミュレーターが起動し、作成したプロジェクトがシミュレーター内で実行される。


簡単なことですが、以上を行いました。

実機での実行は、
年間参加費¥7,800 (税別)のAppleの開発者登録 https://developer.apple.com/jp/programs/ios/
が必要なため、今回は行いませんでした。


2014年10月5日日曜日

apkへの署名で、「-tsaまたは-tsacertが指定されていないため、このjarにはタイムスタンプが付加されていません。」という警告が出た

署名付きapkファイル作成で警告が発生


ここ→http://techbooster.org/android/environment/1445/
を参考に、コマンドでapkファイルに署名を行うと、以下の警告文が表示された。



jarは署名されました。

警告: 
-tsaまたは-tsacertが指定されていないため、このjarにはタイムスタンプが付加されていません。タイムスタンプがないと、署名者証明書の有効期限(2042-02-19)後または将来の失効日後に、ユーザーはこのjarを検証できない可能性があります。

  • 警告は出るが、署名付きファイルは無事生成される
  • 警告は気にしなくていい、と書いているサイトもある


原因と解決方法


原因

JDKのバージョンが1.7 u51以降だったため


JDKのバージョン確認は"java -version"コマンド実行


解決方法

解決方法は3種類あります。

  1. JDK1.7 u51以前のバージョンのJDK7をインストール ※1
  2. JDK6をインストール
  3. 署名時に使うjarsignerコマンドのオプションに"-tsa http://timestamp.digicert.com"を追加
今回は3を行いました。(なので、1と2は未確認になります。)


署名用コマンドは下記のとおりです。

jarsigner -verbose -tsa http://timestamp.digicert.com -keystore hogehoge.keystore android_app.apk hogehoge


(2015/01/30 追記)
※1 jarsignerの署名方式のデフォルト値がJDK6までとJDK7以降で変更されているようなので、これにハマったので注意。→「パッケージファイルに正しく署名されていません」にハマった

2014年9月18日木曜日

Gradleのビルド時間が急に遅くなり、GroovyのプラグインのON/OFFを設定し直すと、ビルド時間が戻った。

Android Studio (Bata) 0.8.9を利用

ビルド時間の増大の原因を調べていたら、Groovyのプラグインが無効化になりエラーが発生                           

Plugin Error
Problems found loading plugins: Plugin "Gradle" was not loaded: required plugin "Groovy" is disabled. Plugin "Android Support" was not loaded: required plugin "Groovy" is disabled. Plugin "Google Cloud Tools For Android Studio" was not loaded: required plugin "Groovy" is disabled.

経緯

Gradleのビルド時間が急に遅く(1分→10分へ)なったので、いろいろ調べていたら、
Event Logにエラーが1件(おそらくGroovyについてだったような・・・)あり、
エラー文言のリンクを選択すると、Groovyのプラグインが無効になってしまったため、
上のエラーが発生


対処方法

1.Plugin managerを開く

Configure > Plugins で開く

何かプロジェクトを開いているときは、
  • Mac → Android Studio > Preferences > Plugins
  • Ubuntu → File > Settings... > Plugins
で開けます。


2.Groovyをチェック

Groovyのプラグインが無効状態になっているので、チェックボックスにチェックを入れます。

3.Groovyをチェックして設定完了にしようとしたら、エラーに

GroovyのプラグインにチェックしてApplyすると、
Unable to apply changes: plugins "Android Support", "Google Cloud Tools For Android Studio", "Gradle" won't be able to load.
とエラーが出るときがあります。

赤くなっている
  • Android Support
  • Google Cloud Tools For Android Studio
  • Gradle
のチェックを一旦外して、再度チェックし、Applyボタンを選択すると、うまく設定できました。

4.アプリのGradleのcleanを実行し、ビルドする

cleanからのビルドだと、1分くらいでできるように戻りました。
差分ビルドだと十数秒程度になり、前より早くなりました。



2014年8月29日金曜日

githubのGoogle I/OのFragmentの記述が参考になった



    public static RadioFragment newInstance(int questionNumber, int persistedResponse) {
        RadioFragment fragment = new RadioFragment();
        Bundle b = new Bundle();
        b.putInt(KEY_QUESTION, questionNumber);
        b.putInt(KEY_PERSISTED_RESPONSE, persistedResponse);
        fragment.setArguments(b);
        return fragment;
    }


2014年8月12日火曜日

Android-Bootstrapの実装

Android-Bootstrapとは

https://github.com/Bearded-Hen/Android-Bootstrap

WebアプリケーションのTwitterBootstrapみたいなことが、Androidでも実装できるライブラリ。
FontAwesomeが利用できる。


簡単な実装方法

ここを元に実装してみました。

やったこと

  1. Android-Bootstrapをclone
  2. プロジェクト内にAndroid-Bootstrapのシンボリックリンク作成(名前はAndroidBootstrap)
  3. setting.gradleに"include ':AndroidBootstrap' "追記
  4. appのbuild.gradleのdependenciesに"compile project(':AndroidBootstrap')"追記
  5. font-awesameからフォントファイルをダウンロード
  6. app/src/main/assetsにダウンロードしたフォントファイル「fontawesome-webfont.ttf」を追加
これで、ライブラリが使用可能状態になり、使用したい画面のxmlファイルを編集すればいい。



より詳しく見るときの参考に


2014年8月9日土曜日

Android WearでHello Worldだけしてみた

実機で実行できるようにしただけです。
環境はAndroid Studio 0.8.0 です。

主にこちらを参考にしました。

プロジェクトはここに上げました。
https://github.com/ysakaguchi/TestWearApp

デフォルトの状態だと、WatchActivityが無いってエラーがでるのですが、
Android Studio 0.8.0のバグのようです。(本当に無い)
参考→http://stackoverflow.com/questions/24657160/compiling-simple-wearable-app-in-android-studio-watchactivity-not-found


  • Android Wearの「設定」>「開発者向けオプション」を選択可能にする(手順参考)
  • 「設定」>「開発者向けオプション」の「ADBデバッグ」を「有効」にする
  • 実行対象を「wear」にして、Run



で、実機上で実行できました。

2014年7月28日月曜日

Android Studioのショートカット一覧

確認した環境

  • Android Studio ... 0.8.0
  • Ubuntu ... 14.04
  • Mac ... OS X10.9 Mavericks

ショートカット一覧

ショートカット内容 Ubuntu Mac
大文字、小文字変換Control + Shift + UCommand + Shift + U
自動補完Control + SpaceControl + Space
(またはControl + Shift + Space)
変数のRenameShift + F6Shift + F6
プロジェクト内文言検索Control + Shift + FControl + Shift + F
変数やメソッドの使用箇所検索Alt + F7※1Alt + F7
もっと詳しく使用箇所検索-Alt + Shift + Command + F7
未importの解決Alt + EnterAlt + Enter
Debug...Alt + Shift + F9Control + Alt + R
Run...Alt + Shift + F10Control + Alt + D
ファイル内検索Command + FCommand + F
ファイル内置換Command + RCommand + R
ファイル内OR検索Control + Shift + F7-
オートフォーマットControl + Alt + L※1Command + Alt + L
オートインデントControl + Alt + I-
ファイル内検索Command + FCommand + F
ファイル内OR検索Control + Shift + F7-
ファイル内置換Command + RCommand + R
現在のファイルを閉じるControl + F4Command + F4
現在のファイルを別ウィンドウで開くShift + F4Shift + F4
前へ戻るControl +Alt +←※1Command + Alt +←
次へ進むControl +Alt +→※1Command + Alt +→
ファイルタブの移動Alt + ←→-

※1.初期だと、システムのショートカットキーが動作するので、システム設定 > キーボード > ショートカット で設定を変更する。

UbuntuのOSショートカットの変更

システム設定 > キーボード > ショートカット で変更できる

gradleで生成されるapkファイルの種類

  • ○○-release-unsigned.apk … 署名とZipAlignがされていないapkファイル
  • ○○-release-unaligned.apk … ZipAlignがされていないapkファイル
  • ○○-release.apk … 署名とZipAlignがされているapkファイル ※GooglePlayにアップするときはこれを使う※

2015/1/27 追記
手動でZipAlignと署名をするときは、署名→ ZipAlign の順番で行う。

2015/2/7 追記
apk署名関連の記事→http://umerepo.blogspot.jp/search/label/apk%E7%BD%B2%E5%90%8D


2014年7月26日土曜日

Android StudioでUnable to open debugger port : java.net.SocketException "Socket closed"というエラーが出た時の対処

再生マークボタンでRunを実行するときや、虫マークボタンでDebugを実行するときに次のエラーが出る時があります。


Unable to open debugger port : java.net.SocketException "Socket closed"

Run,Debugの設定が正しいものになってないためみたいです。

設定をプロジェクト実行のものに変更して、再度RunかDebugを実行すると、正常に実行できます。


IntelliJ初めて触った時に、同じことが発生して、かなりの時間ハマった。。。

クラスファイル生成時のデフォルトコメント"Created by 〜"を変えたいとき

File > Settings... > File and Code Templates > includes > File Header を修正する


Android Studioで行番号の表示を設定(忘れやすい)

File > Settings... > Editor > Appearance > Show line numberをチェックする



2014年7月24日木曜日

android-switch-backportを使ってハマったこととその対処

android-switch-backportの実装方法はここを参照→http://dev.classmethod.jp/smartphone/android/android-tips-switch-lib/


ハマったこと

  • 端末(主にタブレット)でSwitchを表示させると、やけに横に細長いSwitchになる
  • 4.x系の端末設定のフォントサイズを変更すると、Swtch内の文字の大きさが変化してしまう

対処方法

switchStyleに設定するstyleを作成

<style name="MySwitch" parent="@style/Widget.Holo.Light.CompoundButton.Switch">
<item name="track">@drawable/switch_track_holo_light</item>
<item name="thumb">@drawable/switch_inner_holo_light</item>
<item name="switchTextAppearance">@style/common_switchTextAppearance</item>
<item name="switchMinWidth">0dip</item>
</style>

※注意点※
  • @style/Widget.Holo.Light.CompoundButton.Switch部分はエラー表示になるが、ビルドは通る
  • itemタグのnameは標準ライブラリの方のSwitchで指定できる属性名を指定する
  • 属性名を指定するときは「android:」は付けない
  • android-switch-backportライブラリ内のSwitchビューに対してのみ有効なので、標準ライブラリのSwitchビューには反映されない


switchStyleに作成したstyleを指定

    <style name="Theme" parent="@android:style/Theme">
        <item name="switchStyle">@style/MySwitch</item>
    </style>

2014年7月22日火曜日

gradleでgreenDaoのdaoGeneratorを実装

ここ→http://kyokomi.hatenablog.com/entry/2013/12/23/200637
を参考にgradleでgreenDaoのdaoGeneratorを実装しようとして、ハマってしまった。


ハマったところ

  • 最後に生成されるはずのDaoファイルがメニューバーの「Sync Project with Gradle Files」でgradle buildでは生成されない

解決方法

  • Gradle > All tasks > プロジェクト名 > :DaoGenerator > daoGenerator をダブルクリックして、daoGenerator用のbuild.gradleを直接実行させる


















daoGeneratorCleanの方を実行すると、Daoファイルが削除されます。

2014年7月21日月曜日

Android Studioにgitを連携させる

参考URL


VCS > Enable Version Control Integration...にて「Git」を選択する


Android Studioで自動importの設定

File > Settings... > Editor > Auto Importにて以下の項目にチェックを入れる

  • Optimize imports on the fly
  • Add unambiguous imports on the fly

Android StudioをUbuntuのランチャーから起動できるように設定する

追記(2015/06/30)===================
Ubuntu15.04にAndroidStudio1.2.2を入れてみた
=================================


参考URL


desktopファイルの作成

[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Name=Android Studio
Icon=(Android Studioの絶対パス)/bin/androidstudio.ico
Path=(Android Studioの絶対パス)/bin
Exec=(Android Studioの絶対パス)/bin/studio.sh

ファイルの設定を変更

ファイル > 設定 > 動作 > 実行可能なテキストファイル の 「クリックしたら実行する」を設定

作成したdesktopファイルの設定を変更 

desktopファイルを右クリック > プロパティ > アクセス権 > 実行:の「プログラムとして実行可能」を設定


以上の設定を行い、desktopファイルをダブルクリックでAndroid Studioが起動されると、設定完了です。
desktopファイルをランチャーへドラック&ドロップすると、ランチャーに追加可能です。

Ubuntu14.04にAndroid Studio入れてみた

追記(2015/06/30)===================
=================================

Android Studioをダウンロード

https://developer.android.com/sdk/installing/studio.html

~/app/ にダウンロードしました。

JDKをインストール

sudo apt-get install openjdk-7-jdk

Android Studioの起動

  • 端末からコマンドで実行する 
 ~/app/android-studio/bin/studio.sh

gitをインストール

sudo apt-get install  git

gitからAndroidプロジェクトをcloneし、ビルドをするも以下のエラーが発生する


~/app/android-studio/sdk/build-tools/android-4.4W/aapt s -i ~/AndroidStudioProjects/periodnotification/app/src/main/res/drawable-hdpi/ic_launcher.png -o ~/AndroidStudioProjects/periodnotification/app/build/intermediates/res/debug/drawable-hdpi-v4/ic_launcher.png

~/app/android-studio/sdk/build-tools/android-4.4W/aapt: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory
libz.so.1の1行目に指定されているライブラリが、私のPCに入っていないのが原因で、エラーが発生しているようでした。
次のURLを参考にライブラリをインストール。

http://stackoverflow.com/questions/21256866/libz-so-1-cannot-open-shared-object-file

sudo apt-get install libc6-i386 lib32stdc++6 lib32gcc1 lib32ncurses5 zlib1g lib32z1

再度、ビルドを実行すると、正常に完了しました。