0

作成中のライブラリのテスト アプリを作成しようとしています。ライブラリが呼び出されると、インテントが作成され、アクティビティが開始されます。

intent = new Intent(getApplicationContext(), video_on_load.class);
myLib.this.startActivity(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);

このコードをアクティビティのどこかに配置している限り、問題はありません。アプリケーションにはコンテキストがあり、アプリケーションにはアクティビティがあり、アクティビティにもコンテキストがあることに注意してください。アクティビティとコンテキストに関するいくつかのドキュメントを読んで、理解を深めてください。

エラーメッセージは、呼び出しで何かがnullであり、getApplicationContext()に関連していることを示しています。幸運を

于 2012-12-28T22:51:46.727 に答える
0

命名規則に従っていないため、混乱する可能性があります。レイアウトは「R.layout.video_on_load」で、ネストされた相対レイアウトは「R.layout.video_onLoad_layout」です。「R.layout.video_on_load」の XML レイアウト ファイルで実際に宣言されている ID ですか、または進行状況バーが存在しない可能性があり、findViewById(id) を呼び出したときに Null ポインター エラーが発生します。レイアウトの XML ファイルを確認できますか?

変数に割り当てているリソース ID を修正します。

于 2012-12-28T22:33:05.817 に答える