运行时错误创建意图

时间:2012-12-28 22:24:43

标签: android android-intent

我正在尝试为我正在创建的库创建一个测试应用。调用我的库时,它会创建一个intent并启动一个活动。

intent = new Intent(getApplicationContext(), video_on_load.class);
myLib.this.startActivity(intent);

我的程序似乎我的程序在创建新的Intent时崩溃了。我试着为什么会这样,我在我的应用程序中看到我必须将活动发送到AndroidManafest,所以我将以下行添加到我的清单中:

activity android:name="com.example.myLib.video_on_load"></activity>   

然而,我的应用程序仍在崩溃,并显示消息“不幸的是,TestApp已经停止了”。我不确定如何继续。我对android编程很新,所以它可能是我想念的简单。如果您需要任何其他有助于调试此问题的信息,请与我们联系。

我的video_on_load类如下:

public class video_on_load extends Activity {
    private RelativeLayout layout;
    private ProgressBar progressBar;    

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.video_on_load);

        layout = (RelativeLayout) findViewById(R.id.video_onLoad_layout);
        progressBar = (ProgressBar) findViewById(R.id.video_onLoad_progress);
    }

编辑:

Relevent LogCat:

  12-28 17:53:23.824: E/AndroidRuntime(25042): java.lang.NullPointerException
  12-28 17:53:23.824: E/AndroidRuntime(25042):  at android.content.ContextWrapper.getPackageName(ContextWrapper.java:135)
  12-28 17:53:23.824: E/AndroidRuntime(25042):  at android.content.ComponentName.<init>(ComponentName.java:75)
  12-28 17:53:23.824: E/AndroidRuntime(25042):  at android.content.Intent.<init>(Intent.java:3491)

video_on_load.xml:

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:id="@+id/video_onLoad_layout" >

<ProgressBar android:id="@+id/video_onLoad_progress"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_centerInParent="true"
             style="@android:style/Widget.ProgressBar.Large" />

</RelativeLayout>

谢谢

2 个答案:

答案 0 :(得分:1)

更改

intent = new Intent(getApplicationContext(), video_on_load.class);
myLib.this.startActivity(intent);

成:

intent = new Intent(this, video_on_load.class);
startActivity(intent);

只要您将此代码放在Activity中的某个位置,就应该很好。注意,a应用程序具有上下文,应用程序具有活动,而活动也具有上下文。尝试阅读有关活动和上下文的一些文档,以便更好地理解。

您的错误消息显示您的调用中的某些内容为空,并且它与getApplicationContext()相关。祝你好运

答案 1 :(得分:0)

您没有遵循命名约定,因此可能会令人困惑。您的布局是“R.layout.video_on_load”,您的嵌套相对布局是“R.layout.video_onLoad_layout”。该ID是否实际在XML布局文件中声明为“R.layout.video_on_load”,或者当您调用findViewById(id)时,您的进度条可能不存在会导致您的Null指针错误。我们可以看到您的布局的XML文件吗?

更正您要分配给变量的资源ID。