0

デバッグ用の Android アプリケーションの実行に問題があります。Android アプリケーションを作成するのはこれが初めてなので、このプロセスに慣れていません。LogCat から次のエラー メッセージが表示されます

07-30 22:48:35.626: E/Trace(744): error opening trace file: No such file or directory (2)
07-30 22:49:42.285: E/AndroidRuntime(744): FATAL EXCEPTION: main
07-30 22:49:42.285: E/AndroidRuntime(744): java.lang.IllegalStateException: Could not execute method of the activity
07-30 22:49:42.285: E/AndroidRuntime(744):  at android.view.View$1.onClick(View.java:3599)
07-30 22:49:42.285: E/AndroidRuntime(744):  at android.view.View.performClick(View.java:4204)
07-30 22:49:42.285: E/AndroidRuntime(744):  at android.view.View$PerformClick.run(View.java:17355)
07-30 22:49:42.285: E/AndroidRuntime(744):  at android.os.Handler.handleCallback(Handler.java:725)
07-30 22:49:42.285: E/AndroidRuntime(744):  at android.os.Handler.dispatchMessage(Handler.java:92)
07-30 22:49:42.285: E/AndroidRuntime(744):  at android.os.Looper.loop(Looper.java:137)
07-30 22:49:42.285: E/AndroidRuntime(744):  at android.app.ActivityThread.main(ActivityThread.java:5041)
07-30 22:49:42.285: E/AndroidRuntime(744):  at java.lang.reflect.Method.invokeNative(Native Method)
07-30 22:49:42.285: E/AndroidRuntime(744):  at java.lang.reflect.Method.invoke(Method.java:511)
07-30 22:49:42.285: E/AndroidRuntime(744):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
07-30 22:49:42.285: E/AndroidRuntime(744):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
07-30 22:49:42.285: E/AndroidRuntime(744):  at dalvik.system.NativeStart.main(Native Method)
07-30 22:49:42.285: E/AndroidRuntime(744): Caused by: java.lang.reflect.InvocationTargetException
07-30 22:49:42.285: E/AndroidRuntime(744):  at java.lang.reflect.Method.invokeNative(Native Method)
07-30 22:49:42.285: E/AndroidRuntime(744):  at java.lang.reflect.Method.invoke(Method.java:511)
07-30 22:49:42.285: E/AndroidRuntime(744):  at android.view.View$1.onClick(View.java:3594)
07-30 22:49:42.285: E/AndroidRuntime(744):  ... 11 more
07-30 22:49:42.285: E/AndroidRuntime(744): Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.example.wadi3mrad/com.example.wadi3mrad.biog}; have you declared this activity in your AndroidManifest.xml?
07-30 22:49:42.285: E/AndroidRuntime(744):  at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1618)
07-30 22:49:42.285: E/AndroidRuntime(744):  at android.app.Instrumentation.execStartActivity(Instrumentation.java:1417)
07-30 22:49:42.285: E/AndroidRuntime(744):  at android.app.Activity.startActivityForResult(Activity.java:3370)
07-30 22:49:42.285: E/AndroidRuntime(744):  at android.app.Activity.startActivityForResult(Activity.java:3331)
07-30 22:49:42.285: E/AndroidRuntime(744):  at android.app.Activity.startActivity(Activity.java:3566)
07-30 22:49:42.285: E/AndroidRuntime(744):  at android.app.Activity.startActivity(Activity.java:3534)
07-30 22:49:42.285: E/AndroidRuntime(744):  at com.example.wadi3mrad.MainActivity.someFunction(MainActivity.java:55)
07-30 22:49:42.285: E/AndroidRuntime(744):  ... 14 more

コード

public class MainActivity extends Activity {



@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
    WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.activity_main);
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

}
public void someFunction(View v)
{
   Intent myIntentd= new Intent();
     switch (v.getId()) // get id of Button clicked
     {
         case (R.id.music):
         myIntentd = new Intent(getApplicationContext(),
                 Albums.class);
        break;
         case (R.id.bio):
         myIntentd = new Intent(getApplicationContext(),
                 biog.class);
         break;
         case (R.id.face):
         myIntentd = new Intent(getApplicationContext(),
                 faceboom.class);
         break;
         case (R.id.info_but):
         myIntentd = new Intent(getApplicationContext(),
                 info.class);
         break;
     }
   startActivity(myIntentd);
}



@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

}

4

1 に答える 1

2

コードがなければ、Jon Skeet を除いて誰も問題の場所を教えてくれません。Arrayしかし、logcat を見ると、自分の要素以上の要素にアクセスしようとしています。Array

この行はこちら

 Caused by: java.lang.ArrayIndexOutOfBoundsException: length=3; index=3

インデックス 3 にアクセスしようとしているという例外が発生しますが、配列のサイズは 3 であるため、Array基数が 0 であるため、可能な最大のインデックスは 2 です。

ここのこの行 (プロジェクトを参照する例外の後の最初の行) は、Activityその行がどの行にあり、どのメソッドにあるかを示しています

at com.example.wadi3mrad.MainActivity.addListenerOnButton(MainActivity.java:81)

aに a をMainActivity追加する場合の 81 行目。listenerButton

私はこれが答えではないことを理解していますが、あなたは彼らが言うことを知っています.

編集

これがどうなるか見てみましょう。これらのボタンはほとんどすべて 1 つのことを行うため、これを行うためのはるかに簡単でクリーンな方法onClickは、xml でこれらすべてのボタンの関数を宣言することです。そうすれば、すべてのリスナーとボタン配列は必要ありません。

あなたのxmlで、ボタンごとに、この行のようなものを追加します

android:onClick="someFunction"

その場合、Java で 1 つの関数が必要になるだけで、他のすべてのものは必要ありません。したがって、Javaコードは次のようになります

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_main);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}

public void someFunction(View v)
{
   Intent myIntent = new Intent();
     switch (v.getId()) // get id of Button clicked
     {
         case (R.id.music):
         myIntent = new Intent(MainActivity.this,
                Albums.class);
        break;
         case (R.id.bio):
         myIntent = new Intent(MainActivity.this,
                biog.class);
         break;
         case (R.id.face):
         myIntent = new Intent(MainActivity.this,
                faceboom.class);
         break;
         case (R.id.info_but):
         myIntent = new Intent(MainActivity.this,
                info.class);
         break;
     }
   startActivity(myIntent);
}
于 2013-07-30T18:55:54.880 に答える