プロフィール

Author:はるかわ しおん
なにか、新しいものを。
そして、楽しいものを。

FC2カウンター


上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  • 伊豆西部の混浴温泉の情報を追加

みんなで作る! 日帰り混浴温泉リストに、伊豆西部の無料24時間混浴温泉を追加しました!

・赤井浜露天風呂/雲見露天風呂
・ダジュール岩地
・平六地蔵露天風呂

いずれも夏期間のみなので、いまがまさに旬!といった温泉です。
スポンサーサイト
  • GoogleMapAPIV2 で ProGuard エラー

以下のエラーに遭遇しました。



Proguard returned with error code 1. See console
警告: com.google.android.gms.common.images.ImageManager$c: can't find superclass or interface android.content.ComponentCallbacks2
警告: com.google.android.gms.internal.bn$b: can't find superclass or interface android.view.View$OnAttachStateChangeListener
警告: com.google.android.gms.maps.MapFragment: can't find superclass or interface android.app.Fragment
警告: com.google.android.gms.common.GooglePlayServicesUtil: can't find referenced field 'int smallestScreenWidthDp' in class android.content.res.Configuration
警告: com.google.android.gms.common.images.ImageManager: can't find referenced method 'void registerComponentCallbacks(android.content.ComponentCallbacks)' in class android.content.Context
警告: com.google.android.gms.common.images.ImageManager$c: can't find referenced class android.content.ComponentCallbacks2
警告: com.google.android.gms.internal.bn$b: can't find referenced class android.view.View$OnAttachStateChangeListener
警告: com.google.android.gms.internal.bn$b: can't find referenced method 'void addOnAttachStateChangeListener(android.view.View$OnAttachStateChangeListener)' in class android.view.View
警告: com.google.android.gms.internal.bn$b: can't find referenced method 'android.view.Display getDisplay()' in class android.view.View
警告: com.google.android.gms.internal.bn$b: can't find referenced method 'void removeOnAttachStateChangeListener(android.view.View$OnAttachStateChangeListener)' in class android.view.View
警告: com.google.android.gms.internal.bn$b: can't find referenced method 'void removeOnGlobalLayoutListener(android.view.ViewTreeObserver$OnGlobalLayoutListener)' in class android.view.ViewTreeObserver
警告: com.google.android.gms.maps.MapFragment: can't find referenced class android.app.Fragment
警告: com.google.android.gms.maps.MapFragment: can't find referenced class android.app.Fragment
警告: com.google.android.gms.maps.MapFragment: can't find referenced class android.app.Fragment
警告: com.google.android.gms.maps.MapFragment: can't find referenced class android.app.Fragment
警告: com.google.android.gms.maps.MapFragment: can't find referenced class android.app.Fragment
警告: com.google.android.gms.maps.MapFragment: can't find referenced class android.app.Fragment
警告: com.google.android.gms.maps.MapFragment: can't find referenced class android.app.Fragment
警告: com.google.android.gms.maps.MapFragment: can't find referenced class android.app.Fragment
警告: com.google.android.gms.maps.MapFragment: can't find referenced class android.app.Fragment
警告: com.google.android.gms.maps.MapFragment: can't find referenced class android.app.Fragment
警告: com.google.android.gms.maps.MapFragment: can't find referenced class android.app.Fragment
警告: com.google.android.gms.maps.MapFragment: can't find referenced class android.app.Fragment
警告: com.google.android.gms.maps.MapFragment$a: can't find referenced class android.app.Fragment
警告: com.google.android.gms.maps.MapFragment$a: can't find referenced class android.app.Fragment
警告: com.google.android.gms.maps.MapFragment$a: can't find referenced class android.app.Fragment
警告: com.google.android.gms.maps.MapFragment$a: can't find referenced class android.app.Fragment
警告: com.google.android.gms.maps.MapFragment$b: can't find referenced class android.app.Fragment
警告: com.google.android.gms.maps.MapFragment$b: can't find referenced class android.app.Fragment
You should check if you need to specify additional program jars.
警告: there were 23 unresolved references to classes or interfaces.
You may need to specify additional library jars (using '-libraryjars').
警告: there were 6 unresolved references to program class members.
Your input classes appear to be inconsistent.
You may need to recompile them and try again.
Alternatively, you may have to specify the option
'-dontskipnonpubliclibraryclassmembers'.
java.io.IOException 発生: Please correct the above warnings first.
at proguard.Initializer.execute(Initializer.java:321)
at proguard.ProGuard.initialize(ProGuard.java:211)
at proguard.ProGuard.execute(ProGuard.java:86)
at proguard.ProGuard.main(ProGuard.java:492)




設定ファイル proguard-project.txt の末尾に以下を追加したところ、問題なくなりました。



# Google Map API v2 エラー対策
-dontwarn com.google.android.gms.*
-ignorewarnings


  • ライブラリプロジェクトで Failed to load map. Error contacting Google servers. This is probably an authentication issue (but could be due to network errors).

Google Map API V2 で以下のエラーに出くわしました。



E/Google Maps Android API(11271): Failed to load map. Error contacting Google servers. This is probably an authentication issue (but could be due to network errors).




Google の Authorized API Access でキーを払い出していなかったり、マニフェストに定義していなかったりで発生しますが、私の環境では違いました。

私の環境ではライブラリプロジェクトを使っており、この場合、マニフェストに定義すべき内容が通常とは異なるようです。


<私の環境>

■メインプロジェクト  (パッケージ例: com.main)

■ライブラリプロジェクト  (パッケージ例: com.lib)

■google-play-services_lib


この場合、マニフェストに定義すべきキーは
 ・ライブラリプロジェクト (例では com.lib の方) のパッケージ名で払い出したキー
であり、これを
 ・ライブラリプロジェクトのマニフェスト
に com.google.android.maps.v2.API_KEY を定義することとなります。


※自信がないので、念のため、メインプロジェクトのマニフェストには com.main で払い出したキーも定義しております。
 →2013/6/17 18:56追記= メインプロジェクトの方にも定義する必要があるようです。つまり、二カ所に定義する必要がある (各々のパッケージ名を使ってキーを払い出すこと; 鍵自体は、メインプロジェクトの apk を使うときに利用する鍵を利用すればよいようです)
  • java.lang.RuntimeException: API key not found. Check that is in the element of AndroidManifest.xml

先程に続き、またもや Google Map。



FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{<パッケージ>ActivityMap}: android.view.InflateException: Binary XML file line #2: Error inflating class fragment
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1971)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1996)
at android.app.ActivityThread.access$700(ActivityThread.java:126)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1156)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4458)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class fragment
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:697)
at android.view.LayoutInflater.inflate(LayoutInflater.java:466)
at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:251)
at android.app.Activity.setContentView(Activity.java:1835)
at <パッケージ>ActivityMap.onCreate(ActivityMap.java:88)
at android.app.Activity.performCreate(Activity.java:4465)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1935)
... 11 more
Caused by: java.lang.RuntimeException: API key not found. Check that is in the element of AndroidManifest.xml
at maps.aj.ay.a(Unknown Source)
at maps.aj.ay.a(Unknown Source)
at maps.aj.al.a(Unknown Source)
at maps.aj.bf.a(Unknown Source)
at maps.aj.be.a(Unknown Source)
at bcw.onTransact(SourceFile:107)
at android.os.Binder.transact(Binder.java:297)
at com.google.android.gms.maps.internal.IMapFragmentDelegate$a$a.onCreateView(Unknown Source)
at com.google.android.gms.maps.SupportMapFragment$a.onCreateView(Unknown Source)
at com.google.android.gms.internal.bb$4.b(Unknown Source)
at com.google.android.gms.internal.bb.a(Unknown Source)
at com.google.android.gms.internal.bb.onCreateView(Unknown Source)
at com.google.android.gms.maps.SupportMapFragment.onCreateView(Unknown Source)
at android.support.v4.app.Fragment.performCreateView(Fragment.java:1460)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:884)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1066)
at android.support.v4.app.FragmentManagerImpl.addFragment(FragmentManager.java:1168)
at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:280)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:669)
... 20 more




あれれ?
キーはマニフェストに入れてあるはず・・・と思いきや、これまたさきほどと同じ、ライブラリプロジェクトのマニフェストには入れているが、メインのプロジェクトの方のマニフェストには入れていませんでした。

きっとライブラリの方にはそもそも記述を入れる必要がないのだろうが、考えるのもめんどくさいのでどちらにも同じ内容を入れておきます。

  • java.lang.IllegalArgumentException: MapViews can only be created inside instances of MapActivity.

GoogleMapsAndroidAPIv2 を使っていたら変な例外が。



FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{<パッケージ>.ActivityMap}: android.view.InflateException: Binary XML file line #7: Error inflating class com.google.android.maps.MapView
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1971)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1996)
at android.app.ActivityThread.access$700(ActivityThread.java:126)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1156)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4458)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.view.InflateException: Binary XML file line #7: Error inflating class com.google.android.maps.MapView
at android.view.LayoutInflater.createView(LayoutInflater.java:606)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:680)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:739)
at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:251)
at android.app.Activity.setContentView(Activity.java:1835)
at <パッケージ>.ActivityMap.onCreate(ActivityMap.java:88)
at android.app.Activity.performCreate(Activity.java:4465)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1935)
... 11 more
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.constructNative(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
at android.view.LayoutInflater.createView(LayoutInflater.java:586)
... 22 more
Caused by: java.lang.IllegalArgumentException: MapViews can only be created inside instances of MapActivity.
at com.google.android.maps.MapView.(MapView.java:291)
at com.google.android.maps.MapView.(MapView.java:264)
at com.google.android.maps.MapView.(MapView.java:247)
... 25 more




おかしいなぁと思っていたら、ライブラリプロジェクト (自分はライブラリプロジェクトを使っています) の方の xmlレイアウト は差し替えたけど、同名の xmlレイアウト がメインの方のプロジェクトにも残っていて、それが古い MapView を使うものだったためでした。
どちらも新しくしてOK。
  • iOSアプリ 流用開発時のアプリ 申請手順

新アプリ 申請手順がどうも覚えられないので、整理。

2013/06/14現在、Xcode4.5 の環境用です。
あくまで私の覚書。


 --- 重要事項メモ ---------------------------------------------------------------
 特に重要な部分を整理すると
  Bundle Identifier = Bundle ID ≒ AppID
  SKU = SKU Number
 である。
→決めるべきは英数でのプロジェクト名で、
 決めたプロジェクト名を SKU/SKU Number に利用し、
 SKU/SKU Number を Bundle Identifier/Bundle ID のサフィックスに利用し、
 Bundle Identifier/Bundle ID を AppID を作成するときのキーとして利用する

 ■整理■
<1> 英数のプロジェクト名を決める: <英数のプロジェクト名>
<2> Bundle Identifier/Bundle ID が決まる: <自分のドメインの逆順>.<英数のプロジェクト名>
<3> 日本語のアプリ名を決める: <日本語のアプリ名>
<4> 開始日を決める: <年月日>
<5> 価格を決める: <Price Tier>
<6> バージョンを決める: <1.00.1234 など>
 --------------------------------------------------------------------------------



1. iTunes Connect

iTunes Connect を開き、適切なアカウントでサインインしてから操作する
→[Add New App] を押す
→まず You can register a new Bundle ID here. の here を別ブラウザで起動する
→Identifiers
→App IDs
→[+ (Add)] を押す
→App ID Description の Name に <1> を入れる
 App ID Suffix として Explicit App ID を選び、
 Bundle ID に <2> を入れ、[Continue] を押し、[Submit] を押す
→Provisioning Profiles
→Distribution
→[+ (Add)] を押す
→Distribution として App Store を選び、[Continue] を押す
→App ID として <上記で作成した App ID> を選択して [Continue] を押す
→Select certificates. で (iOS Distribution) となっているものを選択して [Continue] を押す
→Name this profile and generate. の Profile Name に <1> を入れて [Generate] を押す
→ここまで終わったら、元のブラウザに戻る
 App Information でいったん [Cancel] する
→[Add New App] を押す
→Default Language: そのまま (Japanese)
 App Name: <3>
 SKU Number: <1>
 Bundle ID: <上記で作成した <2> のもの>
 入力したら [Continue] を押す
→Availability Date: <4>
 Price Tier: <5>
 Discount for Educational Institutions: <チェックを外す>
 入力したら [Continue] を押す
→Version Number: <6>
 Copyright: <自分用のコピーライト>
 Primary Category: <適切なカテゴリー>
 Secondary Category (Optional): <適切なカテゴリー 第二希望>
 Rating の部分: <必要なモノを設定>
 Metadata の部分: <必要なモノを設定>
 App Review Information の部分:
  First Name: <名前>
  Last Name: <苗字>
  Email Address: <メールアドレス>
  Phone Number: +81-<電話番号>
  Review Notes: <レビュアーあてのメモ>
 Uploads の部分:
  Large App Icon: <必要なモノを設定>
  3.5-Inch Retina Display Screenshots: <必要なモノを設定>
  4-Inch Retina Display Screenshots: <必要なモノを設定>
→[Save] を押す
→[View Details] を押す
→[Ready to Upload Binary] を押す
Is your product designed to use cryptography or does it contain or incorporate cryptography?: No
→[Save] を押す
→[Continue] を押す


2. Xcode

Mac で作業する。

ブラウザで iOS Dev Center にアクセスし、適切なアカウントでサインインする
https://developer.apple.com/devcenter/ios/index.action
→Certificates, Identifiers & Profiles
→iOS Apps
→Provisioning profiles
→<1> のプロファイルを選択
→[Download] を押す
→ダウンロードしたら、ダブルクリックする

Xcode で作業する。
→Product > Scheme > Edit Scheme を選択
→Archive を選択
→Archive Name: <1> に変更する

→Product > Archive を選ぶ
→Organizer - Archives が起動する
→[Validate] を押す
Log in to iTunes Connect で適切なアカウントを入力して [Next] を押す
→Choose an application record and an identity to sign with:
 Application が <3>と<6> であることを確認
 Code Signing Identity が <1> のものであることを選択して確認
 [Next] を押す
→[Finish] が出たら、[Finish] を押す
→[Distribute] を押す
→Submit to the iOS App Store を選択し、[Next] を押す
Log in to iTunes Connect で適切なアカウントを入力して [Next] を押す
→Choose an application record and an identity to sign with:
 Application が <3>と<6> であることを確認
 Code Signing Identity が <1> のものであることを選択して確認
 [Next] を押す
→[Finish] が出たら、[Finish] を押す


  • トークン ";" に構文エラーがあります。このトークンの後には import を指定する必要があります

Eclipse で以下のようなエラーが出ました。



トークン ";" に構文エラーがあります。このトークンの後には import を指定する必要があります




さっぱり意味が分かりません。ソースはあっているはず。

インポート文をカットしたり、ペーストしたり、Eclipse の機能で編成したりしていたら、いつの間にか直りました。なんだったんだ。
  • java.lang.IllegalStateException: Map size should not be 0. Most likely, layout has not yet occured for the map view.

Google Maps Android API v2 をいじっていたところ、以下の例外が発生しました。



FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.maptest/com.example.maptest.MainActivity}: java.lang.IllegalStateException: Map size should not be 0. Most likely, layout has not yet occured for the map view.
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1971)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1996)
at android.app.ActivityThread.access$700(ActivityThread.java:126)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1156)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4458)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.IllegalStateException: Map size should not be 0. Most likely, layout has not yet occured for the map view.
at maps.au.i.b(Unknown Source)
at maps.aj.v.a(Unknown Source)
at maps.aj.r.a(Unknown Source)
at maps.aj.al.a(Unknown Source)
at bcn.onTransact(SourceFile:83)
at android.os.Binder.transact(Binder.java:297)
at com.google.android.gms.maps.internal.IGoogleMapDelegate$a$a.moveCamera(Unknown Source)
at com.google.android.gms.maps.GoogleMap.moveCamera(Unknown Source)
at com.example.maptest.MainActivity.onCreate(MainActivity.java:76)
at android.app.Activity.performCreate(Activity.java:4465)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1935)
... 11 more



複数の地点をいい感じのズームレベルで表示させるための処理を書いていた時でした。
どうも、以下の newLatLngBounds() のせいのようです。


GoogleMap map = <生成>;
LatLngBounds bounds = new LatLngBounds.Builder().include(new LatLng(35.360444, 138.727561))
.include(new LatLng(35.335722, 138.794563)).include(new LatLng(35.396018, 139.313088)).build();
map.moveCamera(CameraUpdateFactory.newLatLngBounds(bounds, 50));


onCreate() に書かれているのが原因かと思い onResume() に移しましたが変わりませんでした。
 →地図がよういできていないタイミングでは newLatLngBounds() が効かないのかと思いまして・・・


対策として、newLatLngBounds (LatLngBounds bounds, int width, int height, int padding) を使うことにしました。


GoogleMap map = <生成>;
LatLngBounds bounds = new LatLngBounds.Builder().include(new LatLng(35.360444, 138.727561))
.include(new LatLng(35.335722, 138.794563)).include(new LatLng(35.396018, 139.313088)).build();
map.moveCamera(CameraUpdateFactory.newLatLngBounds(bounds, 50, 50, 50));


・・・うおっと、また例外。
今度は以下。



java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.maptest/com.example.maptest.MainActivity}: java.lang.IllegalStateException: View size is too small after padding
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1971)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1996)
at android.app.ActivityThread.access$700(ActivityThread.java:126)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1156)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4458)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.IllegalStateException: View size is too small after padding
at maps.au.i.b(Unknown Source)
at maps.aj.t.a(Unknown Source)
at maps.aj.w.a(Unknown Source)
at maps.aj.r.a(Unknown Source)
at maps.aj.al.a(Unknown Source)
at bcn.onTransact(SourceFile:83)
at android.os.Binder.transact(Binder.java:297)
at com.google.android.gms.maps.internal.IGoogleMapDelegate$a$a.moveCamera(Unknown Source)
at com.google.android.gms.maps.GoogleMap.moveCamera(Unknown Source)
at com.example.maptest.MainActivity.onCreate(MainActivity.java:73)
at android.app.Activity.performCreate(Activity.java:4465)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1935)
... 11 more




結果としては、これで対処しました。


GoogleMap map = <生成>;
LatLngBounds bounds = new LatLngBounds.Builder().include(new LatLng(35.360444, 138.727561))
.include(new LatLng(35.335722, 138.794563)).include(new LatLng(35.396018, 139.313088)).build();
WindowManager windowmanager = (WindowManager)getSystemService(WINDOW_SERVICE);
Display disp = windowmanager.getDefaultDisplay();
int width = disp.getWidth();
int height = disp.getHeight();
map.moveCamera(CameraUpdateFactory.newLatLngBounds(bounds, width, (int) (height * 0.9), 50));


この例では、アクティビティの全体に地図を表示している状態なので、width にはディスプレイの幅、height にはディスプレイの高さ・・・からステータスバーのサイズを引かねばならないがめんどくさいのでざっくり高さの0.9倍・・・にしたものを指定しています。
  • java.lang.ClassNotFoundException: com.google.android.gms.maps.SupportMapFragment in loader dalvik.system.PathClassLoader

Google Maps Android API v2 を利用していたところ、以下のエラーが発生しました。



FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.maptest/com.example.maptest.MainActivity}: android.view.InflateException: Binary XML file line #2: Error inflating class fragment
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
at android.app.ActivityThread.access$1500(ActivityThread.java:117)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:3683)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:864)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:622)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class fragment
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:587)
at android.view.LayoutInflater.inflate(LayoutInflater.java:386)
at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:214)
at android.app.Activity.setContentView(Activity.java:1660)
at com.example.maptest.MainActivity.onCreate(MainActivity.java:10)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
... 11 more
Caused by: android.support.v4.app.Fragment$InstantiationException: Unable to instantiate fragment com.google.android.gms.maps.SupportMapFragment: make sure class name exists, is public, and has an empty constructor that is public
at android.support.v4.app.Fragment.instantiate(Fragment.java:401)
at android.support.v4.app.Fragment.instantiate(Fragment.java:369)
at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:272)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:563)
... 19 more
Caused by: java.lang.ClassNotFoundException: com.google.android.gms.maps.SupportMapFragment in loader dalvik.system.PathClassLoader[/data/app/com.example.maptest-1.apk]
at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)
at java.lang.ClassLoader.loadClass(ClassLoader.java:551)
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
at android.support.v4.app.Fragment.instantiate(Fragment.java:391)
... 22 more




原因は・・・ライブラリを設定していないからでした。
こちらを参考にして設定し、解決しました。
 →これを頭から順に (飛ばさずに!!) 読んでいくと、大丈夫だと思います



  • Google Play Services が見当たらない

Google Maps Android API v2 を利用したところ、どうも Google Play Services が見当たらないようで動きません。
どうやらマシンにインストールされていませんでした。


SDK Manager のログがこちら。


Done loading packages.
Preparing to install archives
Downloading Android SDK Tools, revision 22
URL not found: C:\Program Files (x86)\Android\android-sdk\temp\tools_r22-windows.zip (アクセスが拒否されました。)
Downloading Android Support Library, revision 13
URL not found: C:\Program Files (x86)\Android\android-sdk\temp\support_r13.zip (アクセスが拒否されました。)
Downloading Google Play services, revision 7
URL not found: C:\Program Files (x86)\Android\android-sdk\temp\google_play_services_3136110_r07.zip (アクセスが拒否されました。)
Done. Nothing was installed.




当方の環境は Windows7 Home Premium SP1 (64bit) です。
結局、スタートメニューから SDK Manager を「管理者として実行」したら、ちゃんと入りました。
Eclipse から SDK Manager を起動するのでは、管理者として実行していないからダメっぽいですね。



ご存知でしょうか。

永藤というパン屋さんがあり、その玉子パンが子供のころ好きでした。
ピンク色のビニール袋に入っていたと記憶しています。
デジカメが普及する前だったからか、ググっても画像は見当たりません。

惜しいことに2001年ころには閉店してしまったのでもう二度と食べられない・・・と思っていたのですが、
なにげにググってみて知りました。
別会社が復刻して販売してるらしい!


さっそく注文しました

オンライン販売だと、4個セットでの販売。
商品自体は1000円くらいですが、送料も含めると2000円くらいになってしまいます・・・
(それでも、ウチから千葉まで買いに行くよりは安い)

CIMG9301.jpg

オープン!
CIMG9302.jpg

おおー!
CIMG9303.jpg


・・・でも、食べてみて思いました。
「ちょっと違う・・・」

もうちょっと、気持ちふっくらしていたと記憶しています。
こういう味だったら、近所のパン屋の玉子パンで間に合ってるんだよなー。
Ponta [ポンタ] から電話がありました。
なんでも、「新しいサービスのご案内で・・・」とのこと。

ウチの電話は常時留守電なのでそれ以上のことは聞けなかったけど、
わざわざ電話で連絡してくるほどのものなのだろうか。
  • 標準では xxx-568h@2x.png など読み込めない

iPhone5 にて、Default-568h@2x.png というファイルがあるのだから
xxx-568h@2x.png というファイルもあってしかるべきだと思った
Android 開発者なアナタ!

スウィートです。考え方がスィートすぎます。
まぁ私のことですが。


偉大な先人が、これに対処する関数をご用意されていらっしゃって鼻血どばーと出るくらいに嬉しいので紹介しておきます。

アキバ戦線異臭アリ!
http://d.hatena.ne.jp/mydq/20120920/p1



なお、こちらで紹介されている関数は ARC に対応していない感じなので、ちょこっと直してコメントをつけたものを以下に載せておきます。




/**
* iPhone5 か否かで、画像を読み込みし分ける。
* 具体的には、xxx.png のような画像ファイルが存在する場合、
* 本関数を経由することで iPhone5 の場合は xxx-568h@2x.png を読み込んで返す。
* @see http://d.hatena.ne.jp/mydq/20120920/p1
*/
+ (UIImage *)getImageNamed:(NSString *)imageName
{
// iPhone5解像度対応
NSMutableString *imageNameMutable = [imageName mutableCopy];
CGFloat screenHeight = [UIScreen mainScreen].bounds.size.height;
if ([UIScreen mainScreen].scale == 2.0f && screenHeight == 568.0f) {
NSRange dot = [imageName rangeOfString:@"."];
if (dot.location != NSNotFound) {
[imageNameMutable insertString:@"-568h" atIndex:dot.location];
} else {
[imageNameMutable appendString:@"-568h"];
}
}
UIImage *image = [UIImage imageNamed:imageNameMutable];
if (!image){
image = [UIImage imageNamed:imageName];
}
return image;
}





詳しくは、上記サイト様の方をご覧ください。

わたしの『萌える♪ 百人一首』に対し、お褒めの言葉をいただきました!
いわく・・・

試合での取りが良くなってきました。



これはうれしい!!
ユーザ様が、実際に百人一首の試合で勝てている感じで嬉しい限りです。


アプリのダウンロードはこちらです。

ゲーム画面
  • 初音ミクが★家庭菜園の全自動水やり

タカギ 水分センサー付かんたん水やりタイマーセット G216」の写真入りレポート

いい加減、水を毎日やるのもめんどうになってきたので、自動で水やりできるようにアイテムを導入しました



Amazon で探したところ、




がありましたが、「タカギ 水分センサー付かんたん水やりタイマーセット G216」が、もろもろセットでしかも50%程度オフ!!ということでチョイスしました!


というわけで、初音ミクの「タカギ 水分センサー付かんたん水やりタイマーセット G216」の写真入りレポートです。

 →こちらです
JWings (ジェイウイング) 2013年7月号 である。



付録がついているからか、100円高い1300円である。
で、その付録ってなによというと、飛行隊パッチステッカーである。

・・・・・・。

特集は、ひとつは Su-35。これは大変よろしい。
もうひとつは・・・”パッチで知る自衛隊”・・・。


・・・返せー カネ返せー


まぁね、世の中にはパッチ好きもいるのだろうけれども、でもカラーページ20ページにえんえんとパッチが載っている日には・・・。
しかも (いらない) 付録もパッチのシール・・・。子供じゃあるまいし、誰がシールなんて使うんだ。

当然いい記事はありました。
厚木のレポートとか、木更津痛コブラのレポートとか、鯉のぼりなブルーインパルスとか。
特に Su-35のアビオニクスの部分とかは非常に良かったです。Su-35 のパンフレットの転載のようですが、こういう実際に自分が飛行機に乗っている感のあるものは本当にいいです。


しかし・・・パッチ・・・ (まだ言ってる
購読し始めて7年余、数ページ(ていうか20ページ)も飛ばして読んだのは初めてだ。
  • 一発! 交通情報 ――操作がめちゃくちゃ少ない交通情報アプリ

一発! 交通情報 ――操作がめちゃくちゃ少ない交通情報アプリ』がアンドロイダーに公認アプリ”に選ばれました!

Screenshot_2013-05-14-02-08-23.png


面倒な設定は一切必要無く、アプリを立ち上げるだけで、高速道路の状況、付近の駅の時刻表など周辺の交通状況がすぐにわかる。出かける前にチェックしておくと安心だぜ。


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。