- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
之前我的代码运行良好,我使用 YoutubeBaseActivity
扩展我的 java 类,现在由于某些原因我使用 AppCompatActivity
并获得 NPE。
这是我得到 NPE 的行:
youTubePlayerSupportFragment.initialize(ApiKey.YOUTUBE_API_KEY, this);
YouTubeViewActivity.java这里是完整的代码
public class YouTubeViewActivity extends AppCompatActivity implements
YouTubePlayer.OnInitializedListener {
private static final int RECOVERY_DIALOG_REQUEST = 1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.youtube_view_activity);
YouTubePlayerSupportFragment youTubePlayerSupportFragment =
(YouTubePlayerSupportFragment) getSupportFragmentManager().findFragmentById(R.id.youtube_view);
// at below line I am getting NPE
youTubePlayerSupportFragment.initialize(ApiKey.YOUTUBE_API_KEY, this);
}
@Override
public void onInitializationFailure(YouTubePlayer.Provider provider,
YouTubeInitializationResult errorReason) {
if (errorReason.isUserRecoverableError()) {
errorReason.getErrorDialog(this, RECOVERY_DIALOG_REQUEST).show();
} else {
String errorMessage = String.format(
getString(R.string.error_player), errorReason.toString());
Toast.makeText(this, errorMessage, Toast.LENGTH_LONG).show();
}
}
@Override
public void onInitializationSuccess(YouTubePlayer.Provider provider,
YouTubePlayer player, boolean wasRestored) {
if (!wasRestored) {
player.loadVideo("pRpeEdMmmQ0"); // cue, load
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == RECOVERY_DIALOG_REQUEST) {
// Retry initialization if user performed a recovery action
getYouTubePlayerProvider().initialize(ApiKey.YOUTUBE_API_KEY, this);
}
}
private YouTubePlayer.Provider getYouTubePlayerProvider() {
return (YouTubePlayerView) findViewById(R.id.youtube_view);
}
}
youtube_view_activity.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<fragment
android:name="com.google.android.youtube.player.YouTubePlayerFragment"
android:id="@+id/youtube_view"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
查看日志:
FATAL EXCEPTION: main
Process: com.akoscz.youtube, PID: 13033
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.akoscz.youtube/com.akoscz.youtube.YouTubeViewActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2338)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2390)
at android.app.ActivityThread.access$800(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1321)
at android.os.Handler.dispatchMessage(Handler.java:110)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:5299)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:829)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:645)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at com.akoscz.youtube.YouTubeViewActivity.onCreate(YouTubeViewActivity.java:28)
at android.app.Activity.performCreate(Activity.java:5264)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1088)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2302)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2390)
at android.app.ActivityThread.access$800(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1321)
at android.os.Handler.dispatchMessage(Handler.java:110)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:5299)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:829)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:645)
at dalvik.system.NativeStart.main(Native Method)
最佳答案
您的布局中有错误的 Fragment
类。它应该是 com.google.android.youtube.player.YouTubePlayerSupportFragment
。
支持 FragmentManager
只处理支持的 Fragment
,所以 getSupportFragmentManager().findFragmentById()
调用不会找到 >YouTubePlayerFragment
在您的布局中,并且只会返回 null。
关于android - YouTubePlayerSupportFragment 空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41055979/
我正在尝试使用YouTubePlayerSupportFragment将youtube视频集成到Fragment中。我在logcat中收到以下错误- FATAL EXCEPTION: main
之前我的代码运行良好,我使用 YoutubeBaseActivity 扩展我的 java 类,现在由于某些原因我使用 AppCompatActivity 并获得 NPE。 这是我得到 NPE 的行:
我无法将 YouTubePlayerSupportFragment 正确编译到我的项目中。我已经审查了这个 post还有这个post并在那里实现了建议,但仍然没有成功。 以下是我目前所做的尝试:我将
在我的 Fragment 类中,PlaybackEventListener 和 PlayerStateChangeListener 不起作用。它不会显示 toast 。 这是我的代码: 进口: imp
我正在创建 YouTubePlayerSupportFragment。以纵向模式播放效果很好。只要我点击播放器的全屏按钮,它就会强制改变方向并重新创建我所在的 Activity (视频停止播放并重新创
我正在与 YouTubePlayerSupportFragment 斗争3天试图让它在滑动 fragment 中运行。现在显示这个错误,我尝试了其他方法并得到NullPointerException
我有一个 MenuActivity,在 MenuActivity 中我有一个 SeguridadMenuFrament,在 SeguridadMenuFrament 中我有 SeguridadFrag
YouTubePlayerSupportFragment 显示网络错误 400 我创建了一个小演示来测试 YoutubeSupportFragment YouTubePlayerSupportFra
我需要动态创建 YouTubePlayer,我不能扩展 YoutubeBaseActivity。所以我只需要创建 YouTubePlayerSupportFragment。我试过这样做: contai
我正在尝试使用 YouTubePlayerSupportFragment 将 youtube 视频集成到 Fragment 中。我使用了 youtubeandroidplayerapi。我在 logc
我有一个从 fragment 延伸的 Activity public class Youtube_visor extends Fragment{ ... 以及使用 YouTubePlayerSuppo
我正在尝试以横向模式全屏显示 YouTube 播放器,但它不起作用。我把 player.setFullscreenControlFlags(YouTubePlayer.FULLSCREEN_FLAG_
我正在使用 YouTubePlayerSupportFragment 在我的应用中嵌入 YouTube 视频。嵌入后效果非常好,视频可以播放,一切都很棒。 当我点击全屏按钮我的嵌入式 YouTube
我正在尝试将 YouTubePlayerSupportFragment 放置在 SlidingDrawer View 中。但是,当它运行时,视频会在 1 秒后停止,并在 LogCat 中发布以下内容:
我正在尝试在我的应用程序中集成 DrawerLayout与 YouTubePlayerSupportFragment .我想使用抽屉导航菜单在主要 Activity 中加载 fragment 。 我已
我正在尝试使用 API Youtube 执行播放视频,但我在 XML 重复 ID 0x7f080039 中收到错误。知道如何解决这个问题吗? 我的 fragment 扩展了 YouTubePlayer
我正在开发使用 YouTube android API 的应用程序。 为了播放视频,我使用了 YouTubePlayerFragment。 当我从 Activity 类扩展我的 Activity 时,
我正在尝试在 ListView 项中使用 YouTubePlayerSupportFragment。 ListView 位于 Activity 中的 Fragment 内。由于存在嵌套 fragmen
我在使用 YouTube 时遇到问题(总是加载)。 显然“但只是第一次”正常工作,我想说,第一个实例(第一次运行)正常工作并正确地水平和垂直加载,但是当更改 fragment 时 -> fragmen
我试图解决这个问题,通过互联网搜索,没有找到真正的答案。 我正在开发一款需要 YouTube 播放器的应用。这个播放器是YouTubePlayerSupportFragment因为它在支持 fragm
我是一名优秀的程序员,十分优秀!