Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 强制转换远程显示指针_Android_Chromecast - Fatal编程技术网

Android 强制转换远程显示指针

Android 强制转换远程显示指针,android,chromecast,Android,Chromecast,当我们单击ChangeColor按钮时,Cubernder类中的nullpointer异常 java.lang.NullPointerException: Attempt to invoke virtual method 'void CubeRenderer.changeColor()' on a null object reference java类 访问CuberEnder类方法mcuberEnder.changeColor空指针异常需要处理的确切位置 public class Pres

当我们单击ChangeColor按钮时,Cubernder类中的nullpointer异常

java.lang.NullPointerException: Attempt to invoke virtual method 'void  CubeRenderer.changeColor()' on a null object reference
java类

访问CuberEnder类方法mcuberEnder.changeColor空指针异常需要处理的确切位置

public class PresentationService extends CastRemoteDisplayLocalService {

private static final String TAG = "PresentationService";

// First screen
private CastPresentation mPresentation;
private MediaPlayer mMediaPlayer;
private CubeRenderer mCubeRenderer;

@Override
public void onCreate() {
    super.onCreate();
    // Audio
    mMediaPlayer = MediaPlayer.create(this, R.raw.sound);
    mMediaPlayer.setVolume((float) 0.1, (float) 0.1);
    mMediaPlayer.setLooping(true);
}

@Override
public void onCreatePresentation(Display display) {
    createPresentation(display);
}

@Override
public void onDismissPresentation() {
    dismissPresentation();
}

private void dismissPresentation() {
    if (mPresentation != null) {
        mMediaPlayer.stop();
        mPresentation.dismiss();
        mPresentation = null;
    }
}

private void createPresentation(Display display) {
    dismissPresentation();
    mPresentation = new TVPresentation(this, display);

    try {
        mPresentation.show();
        mMediaPlayer.start();
    } catch (WindowManager.InvalidDisplayException ex) {
        Log.e(TAG, "Unable to show presentation, display was removed.", ex);
        dismissPresentation();
    }
}

/**
 * Utility method to allow the user to change the cube color.
 */
public void changeColor() {
    mCubeRenderer.changeColor();
}

}

问题已解决McUberender=新的Cuberender;需要在PresentationService类中添加此行

在Cubernderer类中不会发生异常的可能重复。当尝试使用空CuberEnder引用访问CuberEnder类的方法changeColor时,会发生这种情况。因此,您应该展示并仔细研究调用该方法的代码,以及应该实例化或获取对Cubernderer实例的有效引用的代码,因为这就是问题所在。谢谢@MarkusKauppinen
public class PresentationService extends CastRemoteDisplayLocalService {

private static final String TAG = "PresentationService";

// First screen
private CastPresentation mPresentation;
private MediaPlayer mMediaPlayer;
private CubeRenderer mCubeRenderer;

@Override
public void onCreate() {
    super.onCreate();
    // Audio
    mMediaPlayer = MediaPlayer.create(this, R.raw.sound);
    mMediaPlayer.setVolume((float) 0.1, (float) 0.1);
    mMediaPlayer.setLooping(true);
}

@Override
public void onCreatePresentation(Display display) {
    createPresentation(display);
}

@Override
public void onDismissPresentation() {
    dismissPresentation();
}

private void dismissPresentation() {
    if (mPresentation != null) {
        mMediaPlayer.stop();
        mPresentation.dismiss();
        mPresentation = null;
    }
}

private void createPresentation(Display display) {
    dismissPresentation();
    mPresentation = new TVPresentation(this, display);

    try {
        mPresentation.show();
        mMediaPlayer.start();
    } catch (WindowManager.InvalidDisplayException ex) {
        Log.e(TAG, "Unable to show presentation, display was removed.", ex);
        dismissPresentation();
    }
}

/**
 * Utility method to allow the user to change the cube color.
 */
public void changeColor() {
    mCubeRenderer.changeColor();
}