【问题标题】:Video streaming from xml file(android)来自 xml 文件的视频流(android)
【发布时间】:2023-03-06 12:45:01
【问题描述】:

我正在创建一个可以从ListView 中的 xml 文件播放视频的 android 应用程序。但不知何故,当我点击ListView 时,出现错误消息并且应用程序正在强制停止。

listview代码是

public class CustomizedListView extends Activity {    
static final String URL = "...";

static final String KEY_LINK = "link";


@Override
public void onItemClick(AdapterView<?> parent, View view,
 int position, long id) {

String  myUrl = channelList.get(position).get("url");
Intent n = new Intent(CustomizedListView.this , VideoViewActivity.class);
      n.putExtra("url", myUrl);
      startActivity(n);

视频查看代码:

public class VideoViewActivity extends Activity {

Intent n = getIntent();

String myurl = n.getStringExtra("url");
VideoView videoView;

@Override
public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.videoview_main);
   
 videoView = (VideoView) findViewById(R.id.VideoView);
 MediaController mc = new MediaController(this);
 videoView.setMediaController(mc);

 Uri video = Uri.parse(myurl);
 videoView.setVideoURI(video);

 videoView.requestFocus();
 videoView.start();
 }

 }

我尝试按照其他帖子的建议将static final String KEY_LINK = "link"; 更改为static final String KEY_LINK = "videolocation";,但它仍然不起作用。

崩溃日志是:

 E/Trace(29679): error opening trace file: No such file or directory (2)
 E/AndroidRuntime(29679): FATAL EXCEPTION: main
 E/AndroidRuntime(29679): android.content.ActivityNotFoundException: 
Unable to find explicit activity class {com.example.androidhive/com.example.androidhive.VideoViewActivity}; have you declared this activity in your AndroidManifest.xml?
 E/AndroidRuntime(29679):  at : E/AndroidRuntime(29679):  at  android.app.Instrumentation.execStartActivity(Instrumentation.java:1416)
 E/AndroidRuntime(29679):  at android.app.Activity.startActivityForResult(Activity.java:3351)
 E/AndroidRuntime(29679):  at android.app.Activity.startActivityForResult(Activity.java:3312)
 E/AndroidRuntime(29679):  at android.app.Activity.startActivity(Activity.java:3522)
 E/AndroidRuntime(29679):  at android.app.Activity.startActivity(Activity.java:3490)
 E/AndroidRuntime(29679):  at com.example.androidhive.CustomizedListView$1.onItemClick(CustomizedListView.java:85)
 E/AndroidRuntime(29679):  at android.widget.AdapterView.performItemClick(AdapterView.java:298)
 E/AndroidRuntime(29679):  at android.widget.AbsListView.performItemClick(AbsListView.java:1102)
 E/AndroidRuntime(29679):  at android.widget.AbsListView$PerformClick.run(AbsListView.java:2945)
 E/AndroidRuntime(29679):  at android.widget.AbsListView$1.run(AbsListView.java:3629)
 E/AndroidRuntime(29679):  at android.os.Handler.handleCallback(Handler.java:615)
 E/AndroidRuntime(29679):  at android.os.Handler.dispatchMessage(Handler.java:92)
 E/AndroidRuntime(29679):  at android.os.Looper.loop(Looper.java:137)
 E/AndroidRuntime(29679):  at android.app.ActivityThread.main(ActivityThread.java:4794)
 E/AndroidRuntime(29679):  at java.lang.reflect.Method.invokeNative(Native Method)
 E/AndroidRuntime(29679):  at java.lang.reflect.Method.invoke(Method.java:511)
 E/AndroidRuntime(29679):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
 E/AndroidRuntime(29679):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556)
 E/AndroidRuntime(29679):  at dalvik.system.NativeStart.main(Native Method)

【问题讨论】:

  • 请添加崩溃日志
  • @JosephusVillarey 没有崩溃日志。
  • @kira4657 I clicked on the listview, the error message come out and the apps is forcing to stop 并且没有崩溃日志??
  • 我认为您没有在清单中声明 VideoViewActivity。
  • @kira4657 wqrahd 是正确的

标签: android xml eclipse listview android-videoview


【解决方案1】:

您尚未在清单中声明 VideoViewActivity 活动。请在清单中声明,然后尝试。

logcat 显示

android.content.ActivityNotFoundException: 
Unable to find explicit activity class {com.example.androidhive/com.example.androidhive.VideoViewActivity}; have you declared this activity in your AndroidManifest.xml?

在应用标签write下的manifest文件中

 <activity android:name=".VideoViewActivity ">
 </activity>

在视频查看活动中将其移到setContentView 之后

Intent n = getIntent();
String myurl = n.getStringExtra("url");

【讨论】:

  • 我在清单中声明后,出现此错误: E/Trace(31879): error opening trace file: No such file or directory (2) E/AndroidRuntime(31879): FATAL EXCEPTION:主 E/AndroidRuntime(31879):java.lang.RuntimeException:无法实例化活动 ComponentInfo{com.example.androidhive/com.example.androidhive.VideoViewActivity}:java.lang.NullPointerException
  • @kira4657 检查我的答案。
  • 在oncreate网络中移动intent代码。我的意思是说这部分 Intent n = getIntent(); String myurl = n.getStringExtra("url");
  • 因为当活动开始时,你必须从意图中获取数据。
【解决方案2】:

问题是因为您没有在清单文件中注册 VideoViewActivity。所以在应用程序标签下注册它由

<activity android:name=".VideoViewActivity ">
</activity>

你应该移动这个

 Intent n = getIntent();

 String myurl = n.getStringExtra("url");

在 onCreate() 方法之后。所以它会是

 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.videoview_main);


  Intent n = getIntent();
  String myurl = n.getStringExtra("url");
  videoView = (VideoView) findViewById(R.id.VideoView);
  MediaController mc = new MediaController(this);
  videoView.setMediaController(mc);

  Uri video = Uri.parse(myurl);
  videoView.setVideoURI(video);

  videoView.requestFocus();
  videoView.start();
  }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-23
    • 2017-04-23
    • 1970-01-01
    • 2015-08-31
    相关资源
    最近更新 更多