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'
}

 

の記載で、ワーニングは出なくなるっぽい。いやっほい。

 

参考。

stackoverflow.com

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の公式のサンプルだから問題ないんじゃないかと(知らんけど)。

github.com

 

ダウンロードしたファイルを下記に設置。

 

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の端末の設定言語による処理の振り分け

開発中の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の実機の検証用に。

 

WindowsAndroid 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。

下記のページを参考に。

 

akira-watson.com

 

適当な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]してから再度作ると、今度は作れた。