私はストリーミングミュージックアプリケーションを作成しますが、音楽サービスを別のプロセスで実行しようとするまでは問題ありません。 Androidデベロッパーのservice次、私はここのようにマニフェストにサービスのプロセスを追加しました:音楽サービスを別のプロセスで実行する方法
if(_playIntent == null) {
_playIntent = new Intent(getApplicationContext(), MyPlayer.class);
startService(_playIntent);
bindService(_playIntent, musicConnection, Context.BIND_AUTO_CREATE);
}
bindServiceがに呼び出します:
は<service android:name=".MyPlayer"
android:process=":myPlayer"
android:enabled="true"/>
はその後MainActivityに私は、開始サービスを呼び出しますServiceConnection:
MyPlayer _player;
private ServiceConnection musicConnection = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
MyPlayer.MusicBinder binder = (MyPlayer.MusicBinder)service;
_player = binder.getService();
}
@Override
public void onServiceDisconnected(ComponentName name) {
isConnection = false;
}
};
その後アプリは、この行の後に動作を停止:
MyPlayer.MusicBinder binder = (MyPlayer.MusicBinder)service;
「残念ながら、Mx Dance Musicは停止しました」、スタックトレース:「致命的な例外:メインjava.lang.ClassCastException:android.os.BinderProxyをcom.xiKy.mxMusic.MyPlayerにキャストできません。 android.app.LoadedApk $ ServiceDispatcher.doConnected(LoadedApk.java:1097) android.app.LoadedApk $ ServiceDispatcher $ RunConnection.runの$ MusicBinderをcom.xiKy.mxMusic.MainActivity $ 3.onServiceConnected(MainActivity.java:356)に追加しました。 (LoadedApk.java:1114) android.os.Handler.handleCallback(Handler.java:615) (android.os.Handler.dispatchMessage(Handler.java:92)) (android.os.Looper.loop .java:137) android.app.ActivityThread.ma (ActivityThread.java:4823) at java.lang.reflect.Method.invokeNative(ネイティブメソッド) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os .ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:789) com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556) at dalvik.system.NativeStart.main(ネイティブメソッド) ClassLoader.loadClass :
Thread.getContextClassLoader()が返すクラスローダーは、複数のアプリケーションをホストするプロセスで失敗することがあります。コンテキストクラスローダを明示的に指定する必要があります。次に例を示します。Thread.setContextClassLoader(getClass()。getClassLoader());
そして私は、行削除する場合:アプリケーションがクラッシュしていないbindService(_playIntent, musicConnection, Context.BIND_AUTO_CREATE);
を。このバグを修正するには?みんなから助けてくれてありがとう。
「logcatで検索してください。エラーが表示されます」 - これはエラーであることはわかりません。 "その後、この行の後でアプリケーションが機能しなくなる" - 「停止する」という意味を説明してください。あなたのアプリがクラッシュしている場合、LogCatにJavaスタックトレースがあります:https://stackoverflow.com/questions/23353173/unfortunately-myapp-has-stopped-how-can-i-solve-thisスタックトレース、あなたの質問を編集し、スタックトレース全体を投稿します。 – CommonsWare
編集ありがとう、ありがとうCommonsWare – Xiky