Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.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 找不到exo播放器?_Android_Exoplayer - Fatal编程技术网

Android 找不到exo播放器?

Android 找不到exo播放器?,android,exoplayer,Android,Exoplayer,我在看教程时做了所有的事情,但我的应用程序仍然崩溃,这是完整的代码,我也添加了互联网权限,没有任何效果我尝试更改方法调用位置,但仍然没有任何效果,我尝试了很多次,但仍然存在相同的问题,即它为null,我不知道这怎么可能,因为我正在调用id,我做错了什么 主要活动 package com.example.section26_media_v2; 公共类MainActivity扩展了AppCompatActivity{ 私人PlayerView PlayerView; 私人SimpleExoPlaye

我在看教程时做了所有的事情,但我的应用程序仍然崩溃,这是完整的代码,我也添加了互联网权限,没有任何效果我尝试更改方法调用位置,但仍然没有任何效果,我尝试了很多次,但仍然存在相同的问题,即它为null,我不知道这怎么可能,因为我正在调用id,我做错了什么

主要活动

package com.example.section26_media_v2;
公共类MainActivity扩展了AppCompatActivity{
私人PlayerView PlayerView;
私人SimpleExoPlayer;
@凌驾
创建时的公共void(@Nullable Bundle savedInstanceState,@Nullable persistable Bundle persistentState){
super.onCreate(savedInstanceState、persistentState);
setContentView(R.layout.activity_main);
playerView=findviewbyd(R.id.player\u视图);
}
@凌驾
受保护的void onStart(){
super.onStart();
player=ExoPlayerFactory.newImpleInstance(这是新的DefaultTrackSelector());
//将exoPlayer与exoPlayerView关联
playerView.setPlayer(player);
DataSource.Factory dataSourceFactory=新的DefaultDataSourceFactory(此,
getUserAgent(这个,getString(R.string.app_name));
MediaSource videoSource=new extractoreMadisource.Factory(dataSourceFactory)
.createMediaSource(Uri.parse(“http://blueappsoftware.in/layout_design_android_blog.mp4"));
播放器。准备(视频源);
}
@凌驾
受保护的void onStop(){
super.onStop();
playerView.setPlayer(空);
player.release();
player=null;
}
}
XML文件

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">


    <com.google.android.exoplayer2.ui.PlayerView
        android:id="@+id/player_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</FrameLayout>

空指针尝试说您的PlayerView为空。这可能是因为findviewbyid与XML上的正确ID不匹配。确保您的id与XML和.Java文件匹配

我也想到了这一点并检查了它,但是您可以看到main中的id与XML文件中的id完全匹配,而且我也只有一个id。检查setContentView(R.layout.activity_main)的布局是否正确?????它现在可以工作了,问题是我在创建时使用了
public void(@Nullable Bundle savedInstanceState,@Nullable persistable Bundle persistencestate){super.onCreate(savedInstanceState,persistentState);
而不是
public void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);
E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.section26_media_v2, PID: 5354
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.section26_media_v2/com.example.section26_media_v2.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.android.exoplayer2.ui.PlayerView.setPlayer(com.google.android.exoplayer2.Player)' on a null object reference
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2817)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892)
        at android.app.ActivityThread.-wrap11(Unknown Source:0)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593)
        at android.os.Handler.dispatchMessage(Handler.java:105)
        at android.os.Looper.loop(Looper.java:164)
        at android.app.ActivityThread.main(ActivityThread.java:6541)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
     Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.android.exoplayer2.ui.PlayerView.setPlayer(com.google.android.exoplayer2.Player)' on a null object reference
        at com.example.section26_media_v2.MainActivity.onStart(MainActivity.java:50)
        at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1333)
        at android.app.Activity.performStart(Activity.java:6992)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2780)