カテゴリー別アーカイブ: Android

Androidスマホ、携帯電話の位置情報


NetmonsterをGoogle Playからダウンロードしてインストールします。GPSを使用するアプリの位置情報の取得が早くなりました。「設定」-「位置情報」-「位置情報の検出方法」で「端末のみ(GPSで現在地を取得します)」を選択すると位置がずれる症状が改善されるようです。モバイルネットワークを利用した位置情報の取得では問題が発生する場合があります(都市部、山間部で発生しやすく、郊外は比較的この問題は発生しないです)。通信が安定する効果もありそうです。

広告

Xamarin Android project


Visual Studio で Xamarin Android プロジェクトをビルドすると、”warning XA0101: @(Content) build action is not supported” が表示される

Xamarin for Visual Studio をアップデートしてプロジェクトを作り直したところエラーが発生しなくなりました。

Android Factory Image


Nexus 7 2012 Wi-fi でファクトリーイメージを焼く方法です。

  1. Factory Images for Nexus Device からイメージ(LMY47V)をダウンロードします。
  2. USBケーブルを接続します。Nexus 7 の電源をオフにします。音量小ボタン電源ボタンを押し続けます。または
    adb reboot bootloader

    を実行します。Startの文字が表示されます。

  3. zipファイルを展開します。
  4. fastboot flashing unlock

    または

    fastboot oem unlock を実行します。
  5. flash-allを実行します。再起動します。
  6. adb reboot bootloaderを実行します。
  7. fastboot flashing lock

    または

    fastboot oem lock

    を実行します。

Android AOSP


Building the System | Android Open Source Projectの手順に従って、Nexus 7 (Wi-Fi), nakasi (grouper)のビルドを行ったところ次のエラーが発生しました。

File “../base/android/jni_generator/jni_generator.py”, line 212, in ParseJavaPSignature
return ‘”%s”‘ % signature_line[signature_line.index(prefix) + len(prefix):]
ValueError: substring not found
make: *** [out/target/product/generic/obj/GYP/shared_intermediates/content/jni/HashSet_jni.h] Error 1
make: *** …
Traceback (most recent call last):
File “../base/android/jni_generator/jni_generator.py”, line 1527, in
sys.exit(main(sys.argv))
File “../base/android/jni_generator/jni_generator.py”, line 1518, in main
GenerateJNIHeader(input_file, output_file, options)
File “../base/android/jni_generator/jni_generator.py”, line 1401, in GenerateJNIHeader
jni_from_javap = JNIFromJavaP.CreateFromClass(input_file, options)
File “../base/android/jni_generator/jni_generator.py”, line 652, in CreateFromClass
jni_from_javap = JNIFromJavaP(stdout.split(‘\n’), options)
File “../base/android/jni_generator/jni_generator.py”, line 600, in __init__
signature=JniParams.ParseJavaPSignature(contents[lineno + 1]))]
File “../base/android/jni_generator/jni_generator.py”, line 212, in ParseJavaPSignature
return ‘”%s”‘ % signature_line[signature_line.index(prefix) + len(prefix):]
ValueError: substring not found
make: *** [out/target/product/generic/obj/GYP/shared_intermediates/content/jni/MotionEvent_jni.h] Error 1

その後ソースコードをダウンロードしなおしたところ問題なくビルドできました。

Cordova プロジェクトの新規作成


Windows の Android Studio で PhoneGap/Cordova の新規プロジェクトを作成する方法です。

  • Apache Cordovaのサイトからファイルをダウンロードして展開します。
  • コマンドプロンプトを開きます。bin フォルダーに移動します。
  • create.bat [パス] [パッケージ名] [プロジェクト名] を実行します。
  • Android Studio の Import Project を選択します。

Visual Studio 2015 RC では Visual Studio for Apache Cordova をインストールすることで Cordova の新規プロジェクトを作成できます。

Android 5.0


Windows で Nexus 7 2012 Wi-Fi を Android 4.4.4 から Android 5.0 (Lollipop), 5.0.2 にOTAアップデートする手順です。

  1. KTU84Pをダウンロードします。また LRX22G (a6645eee89af34f58db74f6a1ad93fe400fcfc7b.signed-nakasi-LRX22G-from-LRX21P.a6645eee.zip)をダウンロードします。
  2. Android SDK がインストールされていることを確認します。%userprofile%\AppData\Local\Android\sdk にインストールされている場合もあります。
  3. USBケーブルを接続します。
  4. Nexus 7 の電源をオフにします。音量小ボタン電源ボタンを押し続けます。Startの文字が出ますので、音量ボタンを押して Recovery modeを表示させて電源ボタンを押します。
  5. 画面に「コマンドが指定されていません」と表示されます。電源ボタンを押しながら音量大ボタンを押します(長押ししなくてもよいです)。音量ボタンを押して “apply update from ADB” を選択し、電源ボタンを押します。
  6. USB ドライバーをインストールします。「デバイスマネージャー」の「ほかのデバイス」- Nexus7 を右クリックして「ドライバーソフトウェアの更新」を選択します。「コンピューターを参照してドライバー ソフトウェアを検索します」-「コンピューター上のデバイス ドライバーの一覧から選択します」-「すべてのデバイスを表示」-「ディスクを使用」の参照ボタンを選択して、Android SDK の \sdk\extras\google\usb_driver フォルダーを選択します。android_winusb.inf を選択して「開く」をクリックします。”Android Composite ADB Interface”を選択します。互換性に関する警告がダイアログに表示されますので「はい」をクリックします。
  7. Windows でコマンドプロンプトを開きます。Android SDK の \sdk\platform-tools\adb.exe devicesを実行して nexus 7 が表示されるか確認します。adb.exe sideload (download folder)\4939a9ff6d10c495beaed26ac96228246f724272.signed-nakasi-LRX21P-from-KTU84P.4939a9ff.zip を実行します。
  8. Nexus 7 に “Install from ADB Complete”が表示されるまで待ちます。
  9. リカバリーメニューの “reboot system now” を選択して電源ボタンを押します。

引き続き Android 5.0 から 5.0.2 にアップデートします。同様の手順で adb.exe sideload a6645eee89af34f58db74f6a1ad93fe400fcfc7b.signed-nakasi-LRX22G-from-LRX21P.a6645eee.zip を実行します


Android 5.0 から 5.0.2 にアップデートしたところ、動作が速くなりました。

Android プロジェクト Google Play Billing


Android のプロジェクトに Google Play Billing, Google Play Licensing を追加する

Android SDK Manager で Google Play Billing Library, Google Play Licensing Library が選択されていることを確認します


Google Play Billing

\Android\sdk\extras\google\play_billing\IInAppBillingService.aidl ファイルを (your project)\app\src\com\android\vending\billing フォルダーにコピーします。


Google Play Licensing

\Android\sdk\extras\google\play_licensing\library\src\com フォルダーを (your project)\app\src\main\java フォルダーにコピーします。(your project)\app\src\main\java\com\google\android\vending\licensing フォルダーとファイルが存在するか確認します。

Android Studio, 0xfeff


Android Studio でビルドを行うと、「エラー: ‘\ufeff’は不正な文字です」「class、interfaceまたはenumがありません」エラーが発生する

UTF-8 形式の java ファイルの先頭に 0xEF, 0xBB, 0xBF (BOM, バイトオーダーマーク)が存在する場合にこのエラーが発生します。Binary Editor などでこれを取り除きます。

android.bat


Android Studio でビルドを行うと、Cannot find … android.bat というメッセージが表示されてエラーになる

以下の内容は標準設定の場合です。別のフォルダーを選択した場合は置き換えてください。

Android Studio で Android SDK Location – “%userprofile%\AppData\Local\Android\sdk”、JDK Location – “%programfiles%\java\jdk1…” に設定されていることを確認します(%userprofile%は展開)。また %userprofile%\AppData\Local\Android\sdk\tools\ に android.bat が存在するか確認します。アップデートの際にファイルが削除されたままになることがあります。%userprofile%\AppData\Local\Android\sdk\tools\temp フォルダーを確認してここに展開します。

環境変数を確認します。「コントロールパネル」-「システムとセキュリティ」-「システム」の「システムの詳細設定」を選択、「詳細設定」タブの「環境設定」ボタンを選択します。次の環境変数が正しく登録されているか確認します。

  • ANDROID_SDK_HOME – “%userprofile%\android”
  • JAVA_HOME – “%programfiles%\java\jdk1…”
  • PATH に %userprofile%\AppData\Local\Android\sdk\tools が存在する

Android Studio をインストールした後 JAVA_HOME の設定を促すダイアログが表示されます。

Android の Googleトーク(Google talk authentication)


Android で 「Googleトークの認証に失敗しました」の通知が表示される

こちらに解決方法があります。

「アプリケーションの管理」 – 「すべて」 の “Googleサービスフレームワーク” – 「データを削除」をタップします。また “マーケット” も同様にデータを削除します。Android を再起動させます。

Google talk authentication failed.

You tap “Remove data” in Google Service Framework in Application Management. And You also remove data of Market. You restart your Android.

エリア品質


エリア品質の改善につながります。

au エリア品質情報送信機能

ソフトバンク Agoop アプリ

iPhone 5 診断/使用状況 自動送信

Androidで「USBストレージまたはSDカードにインストールできませんでした」エラーが表示される


Androidで「USBストレージまたはSDカードにインストールできませんでした」エラーが表示される

Couldn’t install on USB storage or SD card

このエラーは USBストレージまたはSDカードの空き容量が不足している場合に発生しますが、不足していなくても発生する場合があります。

解消されない場合もありますが、次の手順を試してみてください。

  • USBストレージまたはSDカード等の .android_secure フォルダにあるsmdl2tmp1.asec ファイルを削除します。またはこのファイルの名前を変更します。
  • USBストレージまたはSDカードに問題がある可能性があります。エラーチェックを行ってください。または新しいもの別のものと取り換えてみます。
  • Android をリセットします。

原因はわかりませんが、自然に解消する場合があります。ネットワークの状況によりこのエラーが発生することがあります。システムが何かを書き換えるために発生するのではないかと考えています。

play_licensing


eclipse の Project Explorer に play_licensing を追加できまい。

workspace フォルダーに play_licensing をコピーした後、 play_licensing\library フォルダーに .classpath, .project ファイルを追加します。

eclipse, proguard, warning and error


eclipseでproguardを利用すると、android.support.v4 で error code 1が発生する。

warning: android.support.v4… : can’t find superclass or interface android.os. …

java.io.IOException: Please correct the above warnings first.
at proguard.Initializer.execute(Initializer.java:)

ADT 21にアップデートしてから初めてこのエラーが発生するようになりました。proguard.cfg に

  • -dontwarn **CompatHoneycomb
  • -keep class android.support.v4.** { *; }

を追加してもエラーが発生します。


思い切ってプロジェクトを作り直しました。新しいプロジェクトは proguard.cfgが含まれていません。代わりに project.properties ファイルで指定します。

project.properties ファイルの
# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
このコメントに従い、#proguard.config= の #を消して Application Package を作成したところ、エラーが発生しなくなりました。

新しいプロジェクトは icon.png の代わりに ic_launcher.png, ic_launchar-web.png が含まれています。また /bin フォルダーの下にも AndroidManifest.xml が含まれています。/AndroidManifest.xml を変更するとこちらもファイルも自動で更新されるようです。

同じPackage Nameと同じ署名を使用すれば、アップデート APK として Google Play にアップロードできます。

このエラーでお困りの方は試してください。Android は詳しいことはわかりません。背景が黒から白に変わりました。


Android SDK に ADT Bundle と SDK Tools Only の2種類のものが存在します。今後は ADT Bundle のほうを使うことになりそうです。