0

我正在尝试为我正在创建的库创建一个测试应用程序。当我的库被调用时,它会创建一个意图并启动一个活动。

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);
    }

编辑:

相关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>

谢谢

4

2 回答 2

1

改变

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

进入:

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

只要您将此代码放在 Activity 中的某个位置,就可以开始了。注意,一个应用程序有一个上下文,应用程序有活动,活动也有一个上下文。尝试阅读有关活动和上下文的一些文档以获得更好的理解。

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

于 2012-12-28T22:51:46.727 回答
0

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

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

于 2012-12-28T22:33:05.817 回答