尝试使用 VideoView 时应用程序崩溃

Posted

技术标签:

【中文标题】尝试使用 VideoView 时应用程序崩溃【英文标题】:App crashing when trying to use VideoView 【发布时间】:2011-05-03 21:39:51 【问题描述】:

我刚开始搞乱 android dev,我试图简单地播放网络上某处的视频文件。我的 Main.xml 看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
       android:orientation="vertical"
       android:layout_
       android:layout_
    >
    <Button android:layout_ android:id="@+id/button1" android:layout_ android:text="@string/buttonText" android:onClick="clickHandler"></Button>
    <VideoView android:layout_ android:layout_ android:id="@+id/MyVideoView"></VideoView>
</LinearLayout>

我的 java 文件如下所示: 包 com.dop.videoTest;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.MediaController;
import android.widget.Toast;
import android.widget.VideoView;


public class VideoTest extends Activity 
    private String path = "http://commonsware.com/misc/test2.3gp";
    private VideoView mVideoView;

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

    public void clickHandler(View view)
    
        mVideoView = (VideoView) findViewById(R.id.MyVideoView);

        if (path == "") 
            Toast.makeText(
                    VideoTest.this,
                    "Please edit VideoViewDemo Activity, and set path"
                            + " variable to your media file URL/path",
                    Toast.LENGTH_LONG).show();

         else 
            mVideoView.setVideoPath(path);
            mVideoView.setMediaController(new MediaController(this));
            mVideoView.requestFocus();
        
    

所以当我点击按钮时,它只会显示“应用程序视频测试已意外停止。请重试。”

有什么想法吗?

【问题讨论】:

比较字符串使用equals(path.equals("")),而不是path == "" 做 == 工作正常。除此之外不会解决问题 【参考方案1】:

你代码中的路径是

private String path = "http://commonsware.com/misc/test2.3gp";

为此,VideoView 需要访问互联网。 很可能您没有在清单中设置互联网权限。 发生这种情况的原因之一是当您的应用程序尝试访问需要在清单中明确许可声明的内容时。

上网权限可以设置为:

< uses-permission android:name="android.permission.INTERNET" />

检查此链接: Android Manifest Documentation

【讨论】:

你是对的,添加该行实际上使错误消失并且视频现在播放。为什么eclipse不告诉你这样的事情?我永远不会想到这是原因。 好吧,Eclipse 中的 android 支持是由 google 的 android 团队开发的一个单独的插件完成的(据我所知)。所以这是他们的一部分..不应该为此责怪日食。我不确定 android 开发人员告诉你这些错误有多容易,但 android 开发支持还没有接近成熟阶段..但我相信他们会。 Gotcha...您知道在 java 中进行跟踪或回显以使其出现在 Eclipse 控制台中的方法吗? 您可以为此使用 LogCat。 Check this lik

以上是关于尝试使用 VideoView 时应用程序崩溃的主要内容,如果未能解决你的问题,请参考以下文章