Java Android YouTubePlayer API-YouTubeService已泄漏IntentReceiver-无法获取广告id

Java Android YouTubePlayer API-YouTubeService已泄漏IntentReceiver-无法获取广告id,java,android,memory-leaks,android-youtube-api,Java,Android,Memory Leaks,Android Youtube Api,我在YouTubePlayerPractivity的片段中使用youtube播放器 我在使用它时会遇到这种错误: 打开youtube播放器时: 无法获取广告id java.lang.NullPointerException:尝试读取空对象引用上的字段“java.lang.String iwq.a” 广告id是强制性的吗 关闭youtube播放器活动时: 服务com.google.android.youtube.api.Service.youtube服务泄漏了IntentReceive

我在YouTubePlayerPractivity的片段中使用youtube播放器

我在使用它时会遇到这种错误:

  • 打开youtube播放器时:
    • 无法获取广告id java.lang.NullPointerException:尝试读取空对象引用上的字段“java.lang.String iwq.a”
广告id是强制性的吗

  • 关闭youtube播放器活动时:
    • 服务com.google.android.youtube.api.Service.youtube服务泄漏了IntentReceiverudp@bf4a7a原来是在这里注册的。是否缺少对unregisterReceiver()的调用
如何防止此错误

(错误不会使应用程序崩溃)

但当我多次快速打开和关闭youtube视频活动时,该应用程序会死机。 java.lang.IllegalStateException:YouTubeServiceEntity未初始化

谢谢你的帮助

public class YouTubePlayerFragment extends Fragment {

    private YouTubePlayerSupportFragment mYouTubePlayerFragment;
    private YouTubePlayer mYouTubePlayer;

    ...

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_youtube_player, container, false);

        mYouTubePlayerFragment = YouTubePlayerSupportFragment.newInstance();
        mYouTubePlayerFragment.initialize(VideoService.API_KEY, new YouTubePlayer.OnInitializedListener() {
            @Override
            public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer player, boolean wasRestored) {
                if (!wasRestored) {
                    mYouTubePlayer = player;
                    mYouTubePlayer.setPlayerStyle(YouTubePlayer.PlayerStyle.DEFAULT);
                    mYouTubePlayer.loadVideo(mVideoID);
                }
            }

            @Override
            public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult errorReason) {
                if (errorReason.isUserRecoverableError()) {
                    errorReason.getErrorDialog(getActivity(), RECOVERY_REQUEST).show();
                } else {
                    String error = String.format(getString(R.string.player_error), errorReason.toString());
                    Toast.makeText(getActivity(), error, Toast.LENGTH_LONG).show();
                }
            }
        });
        FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
        transaction.add(R.id.youtube_fragment, mYouTubePlayerFragment).commit();

        return view;
    }

    ...

}