Android すべてのブレークポイントが無効になる

Android

Android すべてのブレークポイントが無効になる

Androidのデバッグをしていて、いきなりすべてのブレークポイントが
「skip」
となってしまい、ブレークポイントで止まらなくなってしまいました。

ふぇ?何もしていないのに~(つД`)

と思ったら、下記の画像の赤マルの部分、これを押してしまっていたようです。

break_point_not_active.png

この団子が串にささったようなアイコン…デバッグの隣にあるので、何かの拍子に押してしまったのでしょうか(>_<) ブレークポイントを全部スキップするためにあるようです。(いらねっす…) これを再度クリックすると、ブレークポイントは元通り有効になります。

Android 「画面ロック」を解除できない

Android

画面ロックを解除しようとして、「セキュリティ>画面ロック方法を選択」を開いても、「ない・スワイプ/タッチ・フェイスアンロック」の項目がグレーアウトして選択できなくなってしまいしました。「パターン・PIN・パスワード」のみ選択可能な状態です。
選択できない項目には「管理機能、暗号化ポリシー、または認証情報ストレージにより、無効になりました」 との説明
がついていました。

実は以前にVPN設定をしていてPINコード設定していましたが、VPN設定を削除することで、画面ロックをなしにすることができるようになりました。

下記リンク先によると、VPN設定をしたままロック画面を解除することは一応可能なようです。
http://android.stackexchange.com/questions/22867/connecting-to-vpn-forces-having-secure-screen-lock

Android versionCodeとversionNameの違い

Android

Android versionCodeとversionName Androidのバージョンのつけ方

Android開発の際に、Androidマニフェストファイル(AndroidManifest.xml)の最初の方に、バージョンを記述します。
が、2つあってどっちをどのように書いたらよいのか迷います。

 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="hogehoge.appli"
    android:versionCode="4"
    android:versionName="3.1" >

versionCode
というのは、アプリを何回もリリースすると、Googleのシステム側でどっちが新しいのかわかりませんよね?
その時に、この番号が大きいほうが新しいとGoogleのシステムが認識するためだけの番号です。
なので、新しくアプリをアップデートしたい場合は、この番号が以前のアプリより大きくないといけません。
”この数字は整数でないとだめです。”
なので、これはいわゆるアプリのバージョンとは違うので、注意が必要です。

versionName
という方がいわば普通でいうところのバージョン名です。
ここは実は文字列なので、整数や小数点だけ入れられるというわけではありません。
「マイナー」とか「メジャー」などの文字も入れられるようです。

Android公式開発サイト Versioning Your Applications
http://developer.android.com/tools/publishing/versioning.html

  • 原文の「.. string」ってのは、”1.2.1001″ のようなメジャー、マイナー、ポイントをドットで繋いだ文字列。ってことですかね。ま、もちろん”マイナー””メジャー”とかの文字列も入れられるんでしょうけど。 — たくと {2016-02-16 (火) 13:16:19}
  • たくとさん 返事遅れてすみません、はい、おそらくそういうことだと思います。 — 管理者 {2016-03-02 (水) 16:26:48}

Android the file dx.jar was not loaded from the SDK folder

Android

Android実行時のエラー the file dx.jar was not loaded from the SDK folder

プログラムを実行しようとするときに、上記のエラーが出て、実行できない場合があります。
そんな場合はBuild Automaticallyのチェックを外して、Cleanをしてみるとか、でなおる場合もあるようですが、私の場合はEclipseの再起動でなおりました。

Android targetSdkVersionについての説明

Android

Android targetSdkVersionについての説明

AndroidManifest.xmlの最初に書く

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

というバージョンの宣言についてです。

minSdkVersionはアプリが動作する最低限のAPIレベルなんだろうなー、というのはすぐわかると思いますが、targetSdkVersionはなんなんだろう?というのをちゃんとしておきたいと思います。

targetSdkVersionはつまり、アプリがそのバージョンのためにデザインされて、テストもしてあるよ、というバージョンです。
その前後のバージョンでも動きます。
が、動作が違うようになります。

targetSdkVersionを高く設定していると、たとえば今これを書いている時点で(2014年8月4日)のAPIレベル19(Android 4.4 KITKAT)にすると、デフォルトの画面や動作がAndroid 4.4 KITKATのものになる、ということです。

例を上げますと、弊社でリリースしている「タクシー検索たくる タクシードライバーさん専用アプリ」で、

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

だけ宣言していた時のスクリーンショットが下記で
no_target_version_takuru.png;

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

上記のように宣言すると、同じ画面がこうなります。

target_version_takuru.png;

字が白くなったり、画面名称の表示部分がアイコンつきに変わったりしていますね。
つまり、動作している端末Android 4.4のデフォルトの画面で表示してくれているわけです。

しかし、これってやってほしい場合とそうでない場合がありますよね。

targetSdkVersionを宣言していないと

 <uses-sdk> tag should specify a target API level 
 (the highest verified version; when running on later versions, 
 compatibility behaviors may be enabled) with android:targetSdkVersion="?"

というエラーが出ます。

targetSdkVersionを最新のもので宣言していないと

Not targeting the latest versions of Android; compatibility modes apply. Consider testing and updating this version. Consult the android.os.Build.VERSION_CODES javadoc for details.

というエラーが出ます。

なので、このエラーメッセージにそそのかされて、最新バージョンを書いていたりすると、デザイン面やプログラムの動作面で思わぬ悪影響が出てしまったりします。
気をつけましょう!

ちなみに、
「Android OSのバージョンはわかるけど、APIレベルって何?この数字?」
という方は、下記のAndroid Developpersのサイトを見てみてください。

http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels

さらに、ちなみになのですが、文字がデフォルトで白になってしまったり、アクションバーのデザインが変更になってしまうのは、テーマの変更で

 <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.Light" >

などとやれば治ります。

しかし、これは今度デフォルトが白背景、黒文字になるので、そうでない画面はまたアクティビティごとにテーマを変更したりしないといけません。
ちなみに、黒背景白文字は下記のような感じです。

 <activity
            android:name=".SettingActivity"
            android:label="@string/setting"
            android:theme="@android:style/Theme.Black"  >