Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

バックグラウンド再生時に通知領域に曲名を表示(Android) #38

Open
suzukiplan opened this issue Mar 1, 2015 · 2 comments
Assignees
Milestone

Comments

@suzukiplan
Copy link
Owner

レビューで頂いたリクエスト。
確かに良いかも。
playing _曲名_
みたいな感じにしたい。
なお、Android専用。

@suzukiplan suzukiplan added this to the noplan milestone Mar 1, 2015
@suzukiplan suzukiplan self-assigned this Mar 1, 2015
@suzukiplan
Copy link
Owner Author

実現の方向性を検証。
(a)JNI部分からタイトルを貰うインターフェスを作り、(b)サービスで変更検知したらnotify managerに書き換えを通知する形でやってみたが、(a)が上手くいかない((b)でコケる想定だったので想定外)。Java.lang.Stringがclass not defined errorになる。

stack backtrace引用

E/AndroidRuntime( 3048): java.lang.NoClassDefFoundError: Ljava.lang.String;
E/AndroidRuntime( 3048): at com.suzukiplan.TOHOVGS.TOHOVGS.getPlayingTitle(Native Method)

JDKに1.7を使っていたのでソレかなぁ~と思い、OpenJDK1.6にしてみたけど結果は変わらず。

余談ですが、4.1以前のdalvicは1.6ベースなんですよね。
4.2以降がたしか1.7ベース。
Android Studioは1.7以降じゃないと怒られるから、いまだにAndroid Studioは使い物にならない。それって「4.1以前のアプリを作るな」というのと同義なんですよね。もちろん、Android Studioでも4.1以前のアプリを作ることはできます。しかし、1.7以降のクラスやメソッドを使うとランタイム上でmethod not foundやclass not foundなんかで落ちます。ランタイムで確認してみないと分からないというトラップ。清々しいまでの糞仕様です。本当にありがとうございます。
まぁ、Javaだから悪いとは言いません。でも、Javaじゃなければこの問題は起きなかった。Javaが使えても良いけど、あくまでもサブセット扱い程度に留めないとこういうことになる。OSの構造上の問題ということであまりにも根深い...何故1.7なんか載せたという話しです。ぶっちゃけ1.7にしたメリットはほぼ皆無だと思います。まぁ、Googleなら仕方ない。

@suzukiplan
Copy link
Owner Author

余談を書いていたら本題から逸れた^^;
とりあえず java.lang.NoClassDefFoundError: Ljava.lang.String; でググったらJVMのバグ(デグレード)と思しききな臭い情報がポロポロと出てきた。地雷を踏んでしまったかな?ということで、本件の対応は一旦ペンディングで。
まぁ、JVMの致命的なバグだったとしても東方VGSサポート範囲のAndroidにGoogleが修正を入れる筈が無い。万が一Googleが修正しても、ハードベンダーがメインラインから既に外れている端末にアップデートをするとも思えないので、別の手段を考える必要があると思われる。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant