Android Studio と JDKバージョン

👉 AndroidStudio 利用する Java (JDK) の選択・設定の方法 

この表示.

System Health
Running on a JDK8 version affected by drag and drop issues (1.8.0_60 through 1.8.0_76). See IDEA-146691 for details, and consider using a JDK outside the problematic range.

IDEとしてのAndroid Studio が動く JDK と
Android Studio がアプリビルド時に利用するJDK は異なる.

Mac OSX JDK Selection - Android Tools Project Site

コンソールから

~ $ java -version
java version "1.8.0_72"
Java(TM) SE Runtime Environment (build 1.8.0_72-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.72-b15, mixed mode)

この場合, デスクトップ上のアイコンから Android Studio を起動すると
JDK8 でそれが起動する.

Android Studio を JDK8 で稼働させる場合, 既知のバグがありそれを通知するダイアログが表示される.

Welcome_to_Android_Studio

公式のアナウンスにもあるように JDK7 で稼働させる場合は,

~ $ export STUDIO_JDK=/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk
~ $ open /Applications/Android\ Studio.app

この場合は, ダイアログは通知されない.

一方, 開発中のアプリビルド時に利用するJDKの指定は, Android Studio 設定画面から変更する.

choose-jdk

まとめ

Android Studio 自体が利用する JDK は環境変数 STUDIO_JDK で切替えるとよい.

👉 AndroidStudio 利用する Java (JDK) の選択・設定の方法 


Android Studio の設定で「バージョン」の記述してるとこありすぎね?

あちこちに, 似たようなバージョン的な記述あります Android Studio.

build_gradle

Project_Structure

プロジェクトの改修や移動などで変更しなければならないとき

どこを編集したらいいのか.

いや, 同期されるのか

いや, 優先順位が決まっているのか

どうなのか よくわかりません.

項目もたくさんあります.

どんなのあるか並べてみます.

Default Settings

[Quick Start]-[Configure]-[Project Default]-[Settings]
[File]-[Other Settings]-[Default Settings]

+ Compiler
  + Java Compiler
    + Project byte code version(JDK Default(1.7))

Preferences

Default Project Structure

[Quick Start]-[Configure]-[Project Default]-[Project Structure]
[File]-[Other Settings]-[Default Project Structure]

+ Project Settings
  + Project
    + Project SDK(Android API 19 Platform)
    + Project language level(7.0 - Diamonds, ARM, multi-catch etc.)
+ Platform Settings
  + SDKs
    + Build target(Android 2.3.3)
  + JDK location(/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home)

Project_Structure
Project_Structure 2

Project Structure

[File]-[Project Structure]

+ Project Settings
  + Modules
    + Properties
      + Android Plugin Version(0.9.1)
      + Compile Sdk Version(19)
      + Build Tools Version(19.0.3)
    + Dependencies
      + (com.android.support:support-v4:19.0.0)
      + (com.android.support:appcompat-v7:19.0.0)
      + (com.google.android.gms:play-service:+)
+ Platform Settings
  + Android SDK
    + JDK location(/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home)

Project_Structure

AndroidManifest.xml

<uses-sdk
    android:minSdkVersion="9"
    android:targetSdkVersion="19" />

build.gradle

buildscript {
    dependencies {
        classpath 'com.android.tools.build:gradle:0.9.1'
    }
}

android {
    compileSdkVersion 19
    buildToolsVersion '19.0.3'
    defaultConfig {
        minSdkVersion 9
        targetSdkVersion 19
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }
}

dependencies {
    compile 'com.android.support:support-v4:19.0.0'
    compile 'com.android.support:appcompat-v7:19.0.0'
    compile 'com.google.android.gms:play-services:+'
}

設定項目やエラー後に再設定しようとしても, 今度は, 設定画面にたどりつけなかったりします.

面倒なので表にしてみます.

続きを読む >>


Android OS 4系が2系にユーザー数で並んだ?

アプリ開発の人々はみんな悩んだり、手間取ったりしています。Android OS のバージョンを2系にするか、4系にするか。

スクリーンショット_2013_03_04_13_39

OSのバージョンだけでなく、キャリアやベンダーのOSカスタマイズによる差異もあったりするのですが。

基本的には、公開されている後方互換なライブラリSDKを利用することで ActionBarなど、ある程度吸収できたりします。

Using the Support Library | Android Developers 

当然 2系よりか4系のほうが新しいぶん、機能も多く、充実してるのは確かです。

まずは、端末固有のくせの前にユーザが利用している端末のベースOSのバージョンが揃ってくれることを開発者は願っていると思われたりします。

最近は、あちこちで、パソコンよりスマホからのアクセスのほうが多いと見たり、聞いたりしていますが、AndroidのOSバージョンにおいては、そろそろ、4系が2系に並んできているように思います。

http://developer.android.com/ の2月当初割合。

Platform versions

スクリーンショット_2013_03_04_13_24

Dashboards | Android Developers 

以下、Google Play や Analytics のデバイス統計など。

スクリーンショット_2013_03_04_13_28

スクリーンショット_2013_03_04_13_29

まずは、とりあえずは、ベースOSが揃って行く方向に、とかいうかんじ。

昨年末には、ベンダーやキャリアのOSにも、プラットフォームの断片化を苦慮しての制限が通達されております。

米国Googleは11月13日、Android 4.2(開発コード名Jelly Bean)および開発者向けのAndroid 4.2 SDK(ソフトウェア開発キット)をリリースしたが、それに伴いSDKの使用許諾の内容を拡大し、Android OSの断片化につながるような行為を禁止する事項を盛り込んだ。

グーグル、Android OS断片化の拡大防止のため、SDKに新たな利用条件を設定 | Googleウォッチ | トピックス | Computerworld - エンタープライズITの総合ニュースサイト 

ケータイ時代のように、開発現場で、たくさんの端末がゴロゴロしていたように、「ガラスマ」もゴロゴロしなくていいように早くまとまるといいなあー