Google が ”Glass at Work” で Google Glass のエンタープライズ向け利用を推進してゆくことを宣言しました。
詳しくは Google Glass Info さまにて紹介されているため割愛しますが、ここで重要なのは
・既に Glass を用いたビジネス展開が進みつつある
・Google は Glass を用いたビジネスを支援してゆくことを表明している
という点です。
Google は Glass に消極的だ 等の噂もささやかれる昨今ですが、一般企業との協業を進めてゆくことが宣言されたことは非常に重要な意味を持ちます。
既にアナウンスされていたメガネ関連メーカー以外とも Google がビジネスを進めてゆくという事実は、Glass にとって非常に明るいニュースだと言えるでしょう。
ただし、現時点の Glass は Explorer Program としてアメリカで展開されているだけであり、この "Glass at Work" でも日本企業(かつ アメリカに拠点がない企業) は対象外です。
Glass のビジネス動向については、今後も継続して注視してゆきたいと思います。
2014年4月9日水曜日
2013年12月30日月曜日
Unable to perform direct rendering operation on client
12-30 14:57:43.448: E/JavaBinder(197): !!! FAILED BINDER TRANSACTION !!!
12-30 14:57:43.448: E/TimelineService(197): Unable to perform direct rendering operation on client:
12-30 14:57:43.448: E/TimelineService(197): android.os.TransactionTooLargeException
12-30 14:57:43.448: E/TimelineService(197): at android.os.BinderProxy.transact(Native Method)
12-30 14:57:43.448: E/TimelineService(197): at com.google.android.glass.timeline.ITimelinePublisher$Stub$Proxy.performDirectRenderingOperation(ITimelinePublisher.java:98)
12-30 14:57:43.448: E/TimelineService(197): at com.google.android.glass.timeline.Client.performDirectRenderingOperation(Client.java:129)
12-30 14:57:43.448: E/TimelineService(197): at com.google.android.glass.timeline.TimelineService.performDirectRenderingOperation(TimelineService.java:188)
12-30 14:57:43.448: E/TimelineService(197): at com.google.android.glass.timeline.ITimelineManager$Stub.onTransact(ITimelineManager.java:114)
12-30 14:57:43.448: E/TimelineService(197): at android.os.Binder.execTransact(Binder.java:338)
12-30 14:57:43.448: E/TimelineService(197): at dalvik.system.NativeStart.run(Native Method)
原因が良くわからない例外。
分かったら追記。
→リフレッシュレートが多すぎた模様 (1秒あたり 500回 描画していた・・・)
2013年12月25日水曜日
java.lang.NoSuchMethodError: com.google.android.glass.timeline.TimelineManager.getLiveCard
12-25 08:07:29.304: E/AndroidRuntime(1667): FATAL EXCEPTION: main
12-25 08:07:29.304: E/AndroidRuntime(1667): java.lang.NoSuchMethodError: com.google.android.glass.timeline.TimelineManager.getLiveCard
12-25 08:07:29.304: E/AndroidRuntime(1667): at com.google.android.glass.sample.compass.CompassService.onStartCommand(CompassService.java:117)
12-25 08:07:29.304: E/AndroidRuntime(1667): at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2359)
12-25 08:07:29.304: E/AndroidRuntime(1667): at android.app.ActivityThread.access$1900(ActivityThread.java:123)
12-25 08:07:29.304: E/AndroidRuntime(1667): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1210)
12-25 08:07:29.304: E/AndroidRuntime(1667): at android.os.Handler.dispatchMessage(Handler.java:99)
12-25 08:07:29.304: E/AndroidRuntime(1667): at android.os.Looper.loop(Looper.java:137)
12-25 08:07:29.304: E/AndroidRuntime(1667): at android.app.ActivityThread.main(ActivityThread.java:4424)
12-25 08:07:29.304: E/AndroidRuntime(1667): at java.lang.reflect.Method.invokeNative(Native Method)
12-25 08:07:29.304: E/AndroidRuntime(1667): at java.lang.reflect.Method.invoke(Method.java:511)
12-25 08:07:29.304: E/AndroidRuntime(1667): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
12-25 08:07:29.304: E/AndroidRuntime(1667): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
12-25 08:07:29.304: E/AndroidRuntime(1667): at dalvik.system.NativeStart.main(Native Method)
上記のような例外が発生することがあります。
これは、XE12 で当該メソッドがなくなったことを表していますので、SDK をアップデートし、実装を修正しましょう。
→XE12 での変更点はこちらです
12-25 08:07:29.304: E/AndroidRuntime(1667): java.lang.NoSuchMethodError: com.google.android.glass.timeline.TimelineManager.getLiveCard
12-25 08:07:29.304: E/AndroidRuntime(1667): at com.google.android.glass.sample.compass.CompassService.onStartCommand(CompassService.java:117)
12-25 08:07:29.304: E/AndroidRuntime(1667): at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2359)
12-25 08:07:29.304: E/AndroidRuntime(1667): at android.app.ActivityThread.access$1900(ActivityThread.java:123)
12-25 08:07:29.304: E/AndroidRuntime(1667): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1210)
12-25 08:07:29.304: E/AndroidRuntime(1667): at android.os.Handler.dispatchMessage(Handler.java:99)
12-25 08:07:29.304: E/AndroidRuntime(1667): at android.os.Looper.loop(Looper.java:137)
12-25 08:07:29.304: E/AndroidRuntime(1667): at android.app.ActivityThread.main(ActivityThread.java:4424)
12-25 08:07:29.304: E/AndroidRuntime(1667): at java.lang.reflect.Method.invokeNative(Native Method)
12-25 08:07:29.304: E/AndroidRuntime(1667): at java.lang.reflect.Method.invoke(Method.java:511)
12-25 08:07:29.304: E/AndroidRuntime(1667): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
12-25 08:07:29.304: E/AndroidRuntime(1667): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
12-25 08:07:29.304: E/AndroidRuntime(1667): at dalvik.system.NativeStart.main(Native Method)
上記のような例外が発生することがあります。
これは、XE12 で当該メソッドがなくなったことを表していますので、SDK をアップデートし、実装を修正しましょう。
→XE12 での変更点はこちらです
2013年12月18日水曜日
ApiTakePictureActivity/cameraClient: Not using prepare camera.
12-18 01:42:02.835: W/SharedCameraLogging(577): ApiTakePictureActivity/cameraClient: Not using prepare camera.
12-18 01:42:02.843: W/CameraService(109): CameraService::connect X (pid 577) rejected (existing client).
12-18 01:42:02.859: W/dalvikvm(577): threadid=19: thread exiting with uncaught exception (group=0x40dbe1f8)
12-18 01:42:02.867: E/PriorityThreadFactory/CameraManager/cameraManipulationExecutor(577): Uncaught exception!
12-18 01:42:02.867: E/PriorityThreadFactory/CameraManager/cameraManipulationExecutor(577): java.lang.RuntimeException: java.lang.RuntimeException: Fail to connect to camera service
12-18 01:42:02.867: E/PriorityThreadFactory/CameraManager/cameraManipulationExecutor(577): at com.google.glass.camera.CameraManager.handleError(CameraManager.java:1974)
12-18 01:42:02.867: E/PriorityThreadFactory/CameraManager/cameraManipulationExecutor(577): at com.google.glass.camera.CameraManager.handleError(CameraManager.java:1988)
12-18 01:42:02.867: E/PriorityThreadFactory/CameraManager/cameraManipulationExecutor(577): at com.google.glass.camera.CameraManager.acquireCameraSynchronously(CameraManager.java:892)
12-18 01:42:02.867: E/PriorityThreadFactory/CameraManager/cameraManipulationExecutor(577): at com.google.glass.camera.CameraManager.access$2600(CameraManager.java:65)
12-18 01:42:02.867: E/PriorityThreadFactory/CameraManager/cameraManipulationExecutor(577): at com.google.glass.camera.CameraManager$PictureRequest.onExecute(CameraManager.java:540)
12-18 01:42:02.867: E/PriorityThreadFactory/CameraManager/cameraManipulationExecutor(577): at com.google.glass.camera.CameraManager$CameraManipulation$1.run(CameraManager.java:278)
12-18 01:42:02.867: E/PriorityThreadFactory/CameraManager/cameraManipulationExecutor(577): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
12-18 01:42:02.867: E/PriorityThreadFactory/CameraManager/cameraManipulationExecutor(577): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
12-18 01:42:02.867: E/PriorityThreadFactory/CameraManager/cameraManipulationExecutor(577): at java.lang.Thread.run(Thread.java:856)
12-18 01:42:02.867: E/PriorityThreadFactory/CameraManager/cameraManipulationExecutor(577): Caused by: java.lang.RuntimeException: Fail to connect to camera service
12-18 01:42:02.867: E/PriorityThreadFactory/CameraManager/cameraManipulationExecutor(577): at android.hardware.Camera.native_setup(Native Method)
12-18 01:42:02.867: E/PriorityThreadFactory/CameraManager/cameraManipulationExecutor(577): at android.hardware.Camera.<init>(Camera.java:374)
12-18 01:42:02.867: E/PriorityThreadFactory/CameraManager/cameraManipulationExecutor(577): at android.hardware.Camera.open(Camera.java:330)
12-18 01:42:02.867: E/PriorityThreadFactory/CameraManager/cameraManipulationExecutor(577): at com.google.glass.camera.CameraManager.acquireCameraSynchronously(CameraManager.java:889)
12-18 01:42:02.867: E/PriorityThreadFactory/CameraManager/cameraManipulationExecutor(577): ... 6 more
12-18 01:42:02.867: E/AndroidRuntime(577): FATAL EXCEPTION: CameraManager/cameraManipulationExecutor-0
12-18 01:42:02.867: E/AndroidRuntime(577): java.lang.RuntimeException: java.lang.RuntimeException: Fail to connect to camera service
12-18 01:42:02.867: E/AndroidRuntime(577): at com.google.glass.camera.CameraManager.handleError(CameraManager.java:1974)
12-18 01:42:02.867: E/AndroidRuntime(577): at com.google.glass.camera.CameraManager.handleError(CameraManager.java:1988)
12-18 01:42:02.867: E/AndroidRuntime(577): at com.google.glass.camera.CameraManager.acquireCameraSynchronously(CameraManager.java:892)
12-18 01:42:02.867: E/AndroidRuntime(577): at com.google.glass.camera.CameraManager.access$2600(CameraManager.java:65)
12-18 01:42:02.867: E/AndroidRuntime(577): at com.google.glass.camera.CameraManager$PictureRequest.onExecute(CameraManager.java:540)
12-18 01:42:02.867: E/AndroidRuntime(577): at com.google.glass.camera.CameraManager$CameraManipulation$1.run(CameraManager.java:278)
12-18 01:42:02.867: E/AndroidRuntime(577): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
12-18 01:42:02.867: E/AndroidRuntime(577): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
12-18 01:42:02.867: E/AndroidRuntime(577): at java.lang.Thread.run(Thread.java:856)
12-18 01:42:02.867: E/AndroidRuntime(577): Caused by: java.lang.RuntimeException: Fail to connect to camera service
12-18 01:42:02.867: E/AndroidRuntime(577): at android.hardware.Camera.native_setup(Native Method)
12-18 01:42:02.867: E/AndroidRuntime(577): at android.hardware.Camera.<init>(Camera.java:374)
12-18 01:42:02.867: E/AndroidRuntime(577): at android.hardware.Camera.open(Camera.java:330)
12-18 01:42:02.867: E/AndroidRuntime(577): at com.google.glass.camera.CameraManager.acquireCameraSynchronously(CameraManager.java:889)
12-18 01:42:02.867: E/AndroidRuntime(577): ... 6 more
12-18 01:42:02.875: W/ActivityManager(220): Force finishing activity com.google.glass.camera/.ApiTakePictureActivity
先ほどに引き続き、似たようなスタックトレース。
いまのところ、原因不明。
java.lang.RuntimeException: Fail to connect to camera service
12-18 01:04:20.570: E/PriorityThreadFactory/CameraManager/cameraManipulationExecutor(1765): Uncaught exception!原因不明だが、カメラをクローズせずにアプリを起動したからかもしれない。
12-18 01:04:20.570: E/PriorityThreadFactory/CameraManager/cameraManipulationExecutor(1765): java.lang.RuntimeException: java.lang.RuntimeException: Fail to connect to camera service
12-18 01:04:20.570: E/PriorityThreadFactory/CameraManager/cameraManipulationExecutor(1765): at com.google.glass.camera.CameraManager.handleError(CameraManager.java:1974)
12-18 01:04:20.570: E/PriorityThreadFactory/CameraManager/cameraManipulationExecutor(1765): at com.google.glass.camera.CameraManager.handleError(CameraManager.java:1988)
12-18 01:04:20.570: E/PriorityThreadFactory/CameraManager/cameraManipulationExecutor(1765): at com.google.glass.camera.CameraManager.acquireCameraSynchronously(CameraManager.java:892)
12-18 01:04:20.570: E/PriorityThreadFactory/CameraManager/cameraManipulationExecutor(1765): at com.google.glass.camera.CameraManager.access$2600(CameraManager.java:65)
12-18 01:04:20.570: E/PriorityThreadFactory/CameraManager/cameraManipulationExecutor(1765): at com.google.glass.camera.CameraManager$PictureRequest.onExecute(CameraManager.java:540)
12-18 01:04:20.570: E/PriorityThreadFactory/CameraManager/cameraManipulationExecutor(1765): at com.google.glass.camera.CameraManager$CameraManipulation$1.run(CameraManager.java:278)
12-18 01:04:20.570: E/PriorityThreadFactory/CameraManager/cameraManipulationExecutor(1765): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
12-18 01:04:20.570: E/PriorityThreadFactory/CameraManager/cameraManipulationExecutor(1765): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
12-18 01:04:20.570: E/PriorityThreadFactory/CameraManager/cameraManipulationExecutor(1765): at java.lang.Thread.run(Thread.java:856)
12-18 01:04:20.570: E/PriorityThreadFactory/CameraManager/cameraManipulationExecutor(1765): Caused by: java.lang.RuntimeException: Fail to connect to camera service
12-18 01:04:20.570: E/PriorityThreadFactory/CameraManager/cameraManipulationExecutor(1765): at android.hardware.Camera.native_setup(Native Method)
12-18 01:04:20.570: E/PriorityThreadFactory/CameraManager/cameraManipulationExecutor(1765): at android.hardware.Camera.<init>(Camera.java:374)
12-18 01:04:20.570: E/PriorityThreadFactory/CameraManager/cameraManipulationExecutor(1765): at android.hardware.Camera.open(Camera.java:330)
12-18 01:04:20.570: E/PriorityThreadFactory/CameraManager/cameraManipulationExecutor(1765): at com.google.glass.camera.CameraManager.acquireCameraSynchronously(CameraManager.java:889)
12-18 01:04:20.570: E/PriorityThreadFactory/CameraManager/cameraManipulationExecutor(1765): ... 6 more
12-18 01:04:20.578: E/AndroidRuntime(1765): FATAL EXCEPTION: CameraManager/cameraManipulationExecutor-0
12-18 01:04:20.578: E/AndroidRuntime(1765): java.lang.RuntimeException: java.lang.RuntimeException: Fail to connect to camera service
12-18 01:04:20.578: E/AndroidRuntime(1765): at com.google.glass.camera.CameraManager.handleError(CameraManager.java:1974)
12-18 01:04:20.578: E/AndroidRuntime(1765): at com.google.glass.camera.CameraManager.handleError(CameraManager.java:1988)
12-18 01:04:20.578: E/AndroidRuntime(1765): at com.google.glass.camera.CameraManager.acquireCameraSynchronously(CameraManager.java:892)
12-18 01:04:20.578: E/AndroidRuntime(1765): at com.google.glass.camera.CameraManager.access$2600(CameraManager.java:65)
12-18 01:04:20.578: E/AndroidRuntime(1765): at com.google.glass.camera.CameraManager$PictureRequest.onExecute(CameraManager.java:540)
12-18 01:04:20.578: E/AndroidRuntime(1765): at com.google.glass.camera.CameraManager$CameraManipulation$1.run(CameraManager.java:278)
12-18 01:04:20.578: E/AndroidRuntime(1765): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
12-18 01:04:20.578: E/AndroidRuntime(1765): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
12-18 01:04:20.578: E/AndroidRuntime(1765): at java.lang.Thread.run(Thread.java:856)
12-18 01:04:20.578: E/AndroidRuntime(1765): Caused by: java.lang.RuntimeException: Fail to connect to camera service
12-18 01:04:20.578: E/AndroidRuntime(1765): at android.hardware.Camera.native_setup(Native Method)
12-18 01:04:20.578: E/AndroidRuntime(1765): at android.hardware.Camera.<init>(Camera.java:374)
12-18 01:04:20.578: E/AndroidRuntime(1765): at android.hardware.Camera.open(Camera.java:330)
12-18 01:04:20.578: E/AndroidRuntime(1765): at com.google.glass.camera.CameraManager.acquireCameraSynchronously(CameraManager.java:889)
12-18 01:04:20.578: E/AndroidRuntime(1765): ... 6 more
12-18 01:04:20.578: W/ActivityManager(221): Force finishing activity com.google.glass.camera/.ApiTakePictureActivity
再起動して、正しいコードのアプリを動かせば問題ないと思われる。
2013年12月15日日曜日
java.lang.IllegalStateException: State CREATED expected, currently in PUBLISHED
12-15 13:42:36.562: E/AndroidRuntime(1905): FATAL EXCEPTION: main
12-15 13:42:36.562: E/AndroidRuntime(1905): java.lang.IllegalStateException: State CREATED expected, currently in PUBLISHED
12-15 13:42:36.562: E/AndroidRuntime(1905): at com.google.android.glass.timeline.LiveCard.applyStateTransition(LiveCard.java:334)
12-15 13:42:36.562: E/AndroidRuntime(1905): at com.google.android.glass.timeline.LiveCard.publish(LiveCard.java:193)
12-15 13:42:36.562: E/AndroidRuntime(1905): at jp.nextsphere.positivesuppli.OrientationManager$1.onSensorChanged(OrientationManager.java:161)
12-15 13:42:36.562: E/AndroidRuntime(1905): at android.hardware.SensorManager$ListenerDelegate$1.handleMessage(SensorManager.java:580)
12-15 13:42:36.562: E/AndroidRuntime(1905): at android.os.Handler.dispatchMessage(Handler.java:99)
12-15 13:42:36.562: E/AndroidRuntime(1905): at android.os.Looper.loop(Looper.java:137)
12-15 13:42:36.562: E/AndroidRuntime(1905): at android.app.ActivityThread.main(ActivityThread.java:4424)
12-15 13:42:36.562: E/AndroidRuntime(1905): at java.lang.reflect.Method.invokeNative(Native Method)
12-15 13:42:36.562: E/AndroidRuntime(1905): at java.lang.reflect.Method.invoke(Method.java:511)
12-15 13:42:36.562: E/AndroidRuntime(1905): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
12-15 13:42:36.562: E/AndroidRuntime(1905): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
12-15 13:42:36.562: E/AndroidRuntime(1905): at dalvik.system.NativeStart.main(Native Method)
いちど LiveCard#publish() をコールした LiveCard インスタンスに対し、もう一度 publish() をコールしてはいけない模様。
リファレンスには確かに
Note that once a card usingと書いてある。RemoteViewsis published, changes made to the views by callingset*methods will not be visible in the timeline unless you explicitly callsetViewson the live card again to force an update.
LiveCard を更新する場合は、LiveCard にセットした RemoteViews の set系のメソッドを使えと。
流れとしては、
RemoteViews rv = new RemoteViews(packageName,という感じに、
R.layout.testlayout);
rv.setTextViewText(R.id.textViewResultCombo, "p= " + mPitch);
mLiveCard.setViews(rv);
RemoteViews を new して
↓
RemoteViews#set* でビューを更新して
↓
LiveCard#setViews() で RemoteViews をセット
という感じみたい。
java.lang.IllegalStateException: A card can only be made silent or not when it is unpublished.
12-15 13:35:34.875: E/AndroidRuntime(1725): FATAL EXCEPTION: main
12-15 13:35:34.875: E/AndroidRuntime(1725): java.lang.IllegalStateException: A card can only be made silent or not when it is unpublished.
12-15 13:35:34.875: E/AndroidRuntime(1725): at com.google.android.glass.timeline.LiveCard.setNonSilent(LiveCard.java:312)
12-15 13:35:34.875: E/AndroidRuntime(1725): at jp.nextsphere.positivesuppli.OrientationManager$1.onSensorChanged(OrientationManager.java:160)
12-15 13:35:34.875: E/AndroidRuntime(1725): at android.hardware.SensorManager$ListenerDelegate$1.handleMessage(SensorManager.java:580)
12-15 13:35:34.875: E/AndroidRuntime(1725): at android.os.Handler.dispatchMessage(Handler.java:99)
12-15 13:35:34.875: E/AndroidRuntime(1725): at android.os.Looper.loop(Looper.java:137)
12-15 13:35:34.875: E/AndroidRuntime(1725): at android.app.ActivityThread.main(ActivityThread.java:4424)
12-15 13:35:34.875: E/AndroidRuntime(1725): at java.lang.reflect.Method.invokeNative(Native Method)
12-15 13:35:34.875: E/AndroidRuntime(1725): at java.lang.reflect.Method.invoke(Method.java:511)
12-15 13:35:34.875: E/AndroidRuntime(1725): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
12-15 13:35:34.875: E/AndroidRuntime(1725): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
12-15 13:35:34.875: E/AndroidRuntime(1725): at dalvik.system.NativeStart.main(Native Method)
一度 LiveCard#setNonSilent() をコールしたあと、もう一度コールしてはいけないということかな?
二度目以降の setNonSilent() をやめたら、この例外は発生しなくなりました。
※とりあえずのメモ書きであり、対策に関して全面的に信用はしないで下さいね。
今日から、このブログはあきたじゅん(↓)がお送りいたします。
登録:
投稿 (Atom)