2012-12-28 43 views
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> 

谢谢

+3

全能的Logcat告诉你什么? – ninetwozero

回答

1

变化

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

到:

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

只要你在某个地方把这个代码的活动,你应该是好去。请注意,一个应用程序具有上下文,而应用程序具有活动,活动也具有上下文。尝试阅读活动和上下文的一些文档以获得更好的理解。

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

+0

我会尽快读到所有内容。我做了这个改变,并得到了另一个例外。我用新的例外更新了原始帖子。 – Eumcoz

0

您没有遵循命名约定,因此可能会造成混淆。你的布局是“R.layout.video_on_load”,你的嵌套相对布局是“R.layout.video_onLoad_layout”。这个id实际上是在XML布局文件中为“R.layout.video_on_load”声明的,或者你的进度条可能不存在,当你调用findViewById(id)时会导致你的空指针错误。我们可以看到用于布局的XML文件吗?

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

+0

对不起,来自C++,不习惯所有的Java命名约定。用xml文件更新原始帖子 – Eumcoz

+0

你打电话给你开始活动的意图在哪里? – Tonithy

+0

我的意图是从我的图书馆开始。 – Eumcoz