Android アプリ開発時の Intellij IDEA の設定

EAPでも厳しい感じするのですが...。

一応、ビルド→ラウンチはできるけど。

右下にアラートが出る。

開くと以下ダイアログ。


Unexpected schema version 3
java.lang.AssertionError: Unexpected schema version 3
	at com.android.dvlib.DeviceSchema.getXsdStream(DeviceSchema.java:247)
	at com.android.dvlib.DeviceSchema.getSchema(DeviceSchema.java:331)
	at com.android.sdklib.devices.DeviceParser.getParser(DeviceParser.java:503)
	at com.android.sdklib.devices.DeviceParser.parseImpl(DeviceParser.java:489)
	at com.android.sdklib.devices.DeviceParser.parse(DeviceParser.java:464)
	at com.android.sdklib.devices.DeviceManager.initUserDevices(DeviceManager.java:444)
	at com.android.sdklib.devices.DeviceManager.initDevicesLists(DeviceManager.java:287)
	at com.android.sdklib.devices.DeviceManager.getDevice(DeviceManager.java:217)
	at com.android.sdklib.internal.avd.AvdManager.parseAvdInfo(AvdManager.java:1486)
	at com.android.sdklib.internal.avd.AvdManager.buildAvdList(AvdManager.java:1382)
	at com.android.sdklib.internal.avd.AvdManager.<init>(AvdManager.java:358)
	at com.android.sdklib.internal.avd.AvdManager.getInstance(AvdManager.java:403)
	at com.android.tools.idea.avdmanager.AvdManagerConnection.initIfNecessary(AvdManagerConnection.java:170)
	at com.android.tools.idea.avdmanager.AvdManagerConnection.getAvds(AvdManagerConnection.java:277)
	at com.android.tools.idea.run.editor.DevicePicker.lambda$refreshAvds$2(DevicePicker.java:186)
	at com.intellij.openapi.application.impl.ApplicationImpl$1.run(ApplicationImpl.java:315)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)

想像できるのは、android コマンドが利用できなくなったこと。2017年8月ぐらいからか。


$ ./android
*************************************************************************
The "android" command is deprecated.
For manual SDK, AVD, and project management, please use Android Studio.
For command-line tools, use tools/bin/sdkmanager and tools/bin/avdmanager
*************************************************************************

現在、最新版の 2017.3.3 なのですが。

GradleのバージョンやAndroidプラグインのバージョンなどに強く依存して頻繁な更新の影響を受けてるわけで。


This Gradle plugin requires a newer IDE able to request IDE model level 3. For Android Studio this means version 3.0+


$ adb push /projects/ExampleApp/app/build/outputs/apk/debug/app-debug.apk /data/local/tmp/com.example.app
$ adb shell pm install -r "/data/local/tmp/com.example.app"
Failure [INSTALL_FAILED_TEST_ONLY: installPackageLI]

$ adb shell pm uninstall com.example.app
Unknown failure (at android.os.Binder.execTransact(Binder.java:565))
Error while Installing APK

ある程度の対応策としては以下はあるが。


# gradle.properties
android.injected.build.model.only.versioned=3
android.injected.testOnly=false

とうとうGUI制限が入った Android Studio 3.0 Beta4 - exception think

環境だけでで振り回される外の人々。

中の人たちはそれなりの設定方法があるのだろうか。


Android のコーディング時にAndroidStudioにセットしておくといい2つのXMLファイル

いつも興味深く読ませていただいております.

これでAndroidStyleを使えるようになる。XMLのインデントがAndroid Studio標準より深かったり、コードの幅が狭かったりして個人的にはそんなに好きなスタイルではないものの、まあこれも時代の趨勢かと思って使うことにした。

Android StudioでのコーディングにAndroidStyle.xmlを適用する - Islands in the byte stream

で, これって Android なりのコーディング規約を, そのコーディングに使う IDE である Android Studio に適用しておく.ということか.

セットする XMLファイルは, URLのパスから分かるように, Android Studio の前身で実績のある intellij の Android 向けコードスタイルの設定 xml を利用している.

platform_development/ide/intellij/codestyles/AndroidStyle.xml at master · android/platform_development · GitHub

ide/intellij/codestyles/AndroidStyle.xml - platform/development - Git at Google

で, 以前 Google の Java コーディング規約がどっかの記事であったよなあ, と.

Google_Java_Style

Google Java Style

この Google Java のコーディング設定用XMLも見つけることができる.

intellij-java-google-style.xml - google-styleguide - Style guides for Google-originated open-source projects - Google Project Hosting

diff で眺めてみると分かるが 大きくは,

インデント
Google : 2
Android : 4

フィールド名接頭文字
Google : (なし)
Android : m

ぐらいか.

どちらかを好きな方を入れて好みに合わせていくのがいいのだろう.


AndroidStudio 「getClass()」でエラー?

 

このコードなのですが、

    private final String TAG = getClass().getSimpleName();

最近は、下に赤下波線となったりします。

MainActivity

問題なく動作はするのですが、なんか気持ち悪いです。

Ambiguous method call. Both
getClass () in Object and
getClass () in Object match.

すこし記述を変えてみると正常になりました。

続きを読む >>


Android Studio で on the fly な 自動インポート を。

 

Eclipse で関連クラスの「自動インポート」は、Ctl+Shift+O でしたが。

あれ、ないな。ショートカットリストにもない。

自動インポート

デフォルトの設定では、import していない クラス・メソッドを記述すると「赤字」で表示されて、カーソルをオーバーすると、ポップアップが表示されて、 Option + return で、import 記述が追加されます。

一括で不足分インポート全部を自動挿入ってどうやるのか、まさか無いわけわないわな、と。

探してみると、なんかいろんな方法があるような。

続きを読む >>


Android Studio をインストールしてからの初心者的設定をば。

Android Studio Google I/O

Intellij IDEA CE に Eclipse から乗り換えてから3日しか経ってませんがー。

Eclipse から サクサクな Intellij:IDEA に乗り換えようぜ 

IntelliJ IDEA — The Best Java and Polyglot IDE 

でちゃってます、「Android Studio」、ほとんど同じなオープンソースカスタムなIDE。

Android Studio

Getting Started with Android Studio | Android Developers 

さっさと、乗り換えることにします。

[開発環境] Android Studioをインストールしてみる | Developers.IO 

さっそくこんな記事があるので読んでみたりしながら。

[開発環境] Android Studioをインストールしてみる | Developers.IO 

[Android Studio] 快適にコーディングできるように設定をカスタマイズしてみた | Developers.IO 

設定のエキスポート、インポートができるので、まずは、それを行なってから整えていきます。

続きを読む >>