Java.lang.IllegalArgumentException: пункт меню с идентификатором 2131558727 не имеет MediaRouteActionProviderAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Java.lang.IllegalArgumentException: пункт меню с идентификатором 2131558727 не имеет MediaRouteActionProvider

Сообщение Anonymous »

Привет, я интегрирую функцию Chromecast в существующее приложение. У меня есть следующий код:

Код: Выделить всё

public class VideoBrowserActivity extends AppCompatActivity {

private static final String TAG = "VideoBrowserActivity";
private boolean mIsHoneyCombOrAbove = Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB;
private Toolbar mToolbar;
private CastContext mCastContext;
private MenuItem mediaRouteMenuItem;
private IntroductoryOverlay mIntroductoryOverlay;
private CastStateListener mCastStateListener;

/*
* (non-Javadoc)
* @see android.support.v4.app.FragmentActivity#onCreate(android.os.Bundle)
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.video_browser);
setupActionBar();

mCastStateListener = new CastStateListener() {
@Override
public void onCastStateChanged(int newState) {
if (newState != CastState.NO_DEVICES_AVAILABLE) {
Log.e("DEBUG","===");
showIntroductoryOverlay();
}
}
};

mCastContext = CastContext.getSharedInstance(this);
}

@Override
protected void onResume() {
mCastContext.addCastStateListener(mCastStateListener);
super.onResume();
}

@Override
protected void onPause() {
mCastContext.removeCastStateListener(mCastStateListener);
super.onPause();
}

private void setupActionBar() {
mToolbar = (Toolbar) findViewById(R.id.toolbar);
mToolbar.setTitle(R.string.app_name);
setSupportActionBar(mToolbar);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
getMenuInflater().inflate(R.menu.browse, menu);
mediaRouteMenuItem = CastButtonFactory.setUpMediaRouteButton(getApplicationContext(), menu,
R.id.media_route_menu_item);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
Intent i;
switch (item.getItemId()) {
case R.id.action_settings:
i = new Intent(VideoBrowserActivity.this, CastPreference.class);
startActivity(i);
break;
}
return true;
}

@Override
protected void onDestroy() {
Log.d(TAG, "onDestroy is called");
super.onDestroy();
}

private void showIntroductoryOverlay() {
if (mIntroductoryOverlay != null) {
mIntroductoryOverlay.remove();
}
if ((mediaRouteMenuItem != null) &&  mediaRouteMenuItem.isVisible()) {
new Handler().post(new Runnable() {
@Override
public void run() {
mIntroductoryOverlay = new IntroductoryOverlay.Builder(
VideoBrowserActivity.this, mediaRouteMenuItem)
.setTitleText("Introducing Cast")
.setSingleTime()
.setOnOverlayDismissedListener(
new IntroductoryOverlay.OnOverlayDismissedListener() {
@Override
public void onOverlayDismissed() {
mIntroductoryOverlay = null;
}
})
.build();
mIntroductoryOverlay.show();
}
});
}
}
}
а это XML-файлы

browswer.xml
и расширенный_контроллер.xml
когда я запускаю этот код, я получаю следующую ошибку

j

Код: Выделить всё

ava.lang.IllegalArgumentException: menu item with ID 2131558727 doesn't have a MediaRouteActionProvider.
at com.google.android.gms.cast.framework.CastButtonFactory.setUpMediaRouteButton(Unknown Source)
at com.calkins.tv_everywhere.VideoBrowserActivity.onCreateOptionsMenu(VideoBrowserActivity.java:1168)
at android.app.Activity.onCreatePanelMenu(Activity.java:3128)
at com.android.internal.policy.PhoneWindow.preparePanel(PhoneWindow.java:648)
at com.android.internal.policy.PhoneWindow.doInvalidatePanelMenu(PhoneWindow.java:1029)
at com.android.internal.policy.PhoneWindow$1.run(PhoneWindow.java:341)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:158)
at android.app.ActivityThread.main(ActivityThread.java:7231)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
Почему возникает эта ошибка, я в замешательстве. Любая помощь...

Подробнее здесь: https://stackoverflow.com/questions/434 ... snt-have-a
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Фатальное исключение: java.lang.IllegalArgumentException Действие/пункт назначения навигации
    Anonymous » » в форуме JAVA
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Фатальное исключение: java.lang.IllegalArgumentException Действие/пункт назначения навигации
    Anonymous » » в форуме Android
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous
  • Jetpack, компонуемый с помощью MediaRouteActionProvider
    Anonymous » » в форуме Android
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Исключение HttpClient: java.lang.IllegalArgumentException: параметр хоста имеет значение null
    Anonymous » » в форуме JAVA
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • IllegalArgumentException: пункт назначения навигации xxx неизвестен этому NavController
    Anonymous » » в форуме Android
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Android»