Android Studio [Build]->[Generate Signed APK] で missing translation のワーニング。
Android Studioで課金のテストがしたいんで、まずはベータ版で APK ファイルをアップロードしないとだめ。
ってことで、[Build]->[Generate Signed APK]を選択。
いろいろと設定してさて……と進めると
missing translation warnings ...
デフォルトは英語版で、日本語を values-ja のstrings.xml で対応って考えていたんだけど、英語も日本語も共通のヤツや英語版の values/strings.xml だけに記述して、 values-ja/strings.xml には記述しないようにしていたら、どうもその ja の方に対応する記述がなかったからワーニングらしい。えー。共通のヤツは英語版のほうだけにしたかったんだけど……前にアプリを作った時はこれで行けたんだけどなあ。
……ってことでいろいろとググったら、
app/build.gradle
の android の中に、
lintOptions{
disable 'MissingTranslation'
}
の記載で、ワーニングは出なくなるっぽい。いやっほい。
参考。
Android Studio で Android アプリの開発時の課金の実装( SDK Manager の Extras ってどこやねん)
IInAppBillingService.aidl はどこにあるんだ?
公式ドキュメントにはAndroid Studioでのやりかたの記載なし。
SDK Manager の Extras って、Android Studioでは見当たらないんだけど。
何度か試しているので、本当に下記の方法でOKなのかよくわかんないんだけど、こんな感じ。
まず、AIDLファイル作製。
[File]->[New]->[AIDL]->[AIDL file]
Interface nameはデフォルトのものでやってみる。
[app]の下に aidl/[プロジェクト名] /IMyAidlInterface.aidl が作製される。この [aidl] フォルダを右クリックして、[Enter new package name:] と表示されるので、
com.android.vending.billing
と入力。
次に、下記から IInAppBillingService.aidl をダウンロード。
googleの公式のサンプルだから問題ないんじゃないかと(知らんけど)。
ダウンロードしたファイルを下記に設置。
C:\Users\[ユーザ名]\AndroidStudioProjects\[アプリプロジェクト名]\app\src\main\aidl\com\android\vending\billing
で、次に下記を選択してリビルド。
[Build]->[Rebuild Project]
下記に IInAppBillingService.java が生成された。
C:\Users\[ユーザ名]\AndroidStudioProjects\[アプリプロジェクト名]\app\build\generated\source\aidl\debug\com\android\vending\billing\IInAppBillingService.java
これでいいんかな?
AndroidManifest.xml に下記を追記して進める感じかな?
<uses-permission android:name="com.android.vending.BILLING" />
課金部分の実装はのちほどやってみよう。
画像追加したりとかボタンの色を変えても、Android Management Studio上のLayoutのDesign画面で反映されない
[Build] -> [Clean Project] を選択すると、キャッシュとか消えていい感じになるっぽい。
Androidの端末の設定言語による処理の振り分け
開発中のAndroidアプリ、ユーザが使っているAndroidのに設定されている言語によって処理を振り分けたい。
まあ、英語をデフォルトにしてもうひとつは日本語なんだけど。
で、過去の経緯をいろいろとググってみると、設定言語の取得は Locale.getDefault() だったんだけど、今は非推奨だとか、いろいろと歴史があったらしい。
Locale.getDefault().getLanguage() で返ってくる値(日本語は ja)とかで判定すればいいかな?と思ったんだけど。
どれがいいのかよくわかんなかったので、下記の方法で対応してみた。
res/values-jp/strings.xml に
<bool name="isJpn">true</bool>
res/values/strings.xml に
<bool name="isJpn">false</bool>
と設定しておいて、
this.isJpn = getResources().getBoolean(R.bool.isJpn);
これで判断すればいいんじゃね?
まあこれがベターなのかわかんないけど、こんな感じで実装してみる。
DIGNO TでAndroid Studioの実機検証
Androidの実機の検証用に。
WindowsのAndroid Studioで認識させるために、下記ページへ。
http://www.kyocera.co.jp/prdct/telecom/consumer/lineup/302kc/usb/index.html
上記下部の「ADB用USBドライバ(Android™開発者向け)」の箇所のexeダウンロード。
これでいける。
Android Studio 画面遷移
Android Studio は執筆時の最新のもので検証。今回は2.3.3。
下記のページを参考に。
適当なActivityを作製。Android Studioの画面左の app → java → プロジェクト名を右クリック(androidTestでもtestでもない、おそらく一番上のやつ)で New → Activity → EmptyActivityを選択。
勝手に res → Layout 以下にレイアウトファイルも作られる。
元のActivityに、
public void moveNext(View view){
Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
startActivity(intent);
}
注:
FirstActivity:元アクティビティ
SecondActivity:遷移先アクティビティ
って感じにメソッド作って、元の画面にボタン作って、レイアウトのxmlのそのボタンに関する箇所に android:onClick="moveNext" ってのを追加。
マニフェストファイルに遷移先のアクティビティの追記は、現在のバージョンでは勝手にやってくれるもよう。便利。
Android Studioで開発中、気に入らないからgitで修正前に戻したらちょっとおかしい
開発中にこまめにgitにコミット。
で、新しくActivityを作製してみたんだけど、なんか気に入らないから、Android Studioを終了してgitで修正を戻して再度Android Studioを起動。
で、先ほど作ったActivityを作り直そうと再度同名で作ろうとすると、勝手に activity_hoge2 って感じにLayout Nameが勝手に変更される。「2」って。 activity_hoge ってなってほしいのに。
[Build]→[Rebuild Project]してから再度作ると、今度は作れた。