Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 不幸的是,你的应用程序已停止_Java_Android_Eclipse - Fatal编程技术网

Java 不幸的是,你的应用程序已停止

Java 不幸的是,你的应用程序已停止,java,android,eclipse,Java,Android,Eclipse,我是一个真正的android开发新手。我试图运行一个播放音频文件的方法,但当我打开它时,我得到了“不幸的”应用程序名“已停止” 以下是错误日志: FATAL EXCEPTION: main Process: com.androiddevbook.onyourbike.chapter4, PID: 21393 java.lang.IllegalStateException: Could not execute method of the activity at android.vie

我是一个真正的android开发新手。我试图运行一个播放音频文件的方法,但当我打开它时,我得到了“不幸的”应用程序名“已停止”

以下是错误日志:

 FATAL EXCEPTION: main
 Process: com.androiddevbook.onyourbike.chapter4, PID: 21393
 java.lang.IllegalStateException: Could not execute method of the activity
    at android.view.View$1.onClick(View.java:3823)
    at android.view.View.performClick(View.java:4438)
    at android.view.View$PerformClick.run(View.java:18422)
    at android.os.Handler.handleCallback(Handler.java:733)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:136)
    at android.app.ActivityThread.main(ActivityThread.java:5001)
    at java.lang.reflect.Method.invoke(Native Method):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
 Caused by: java.lang.reflect.InvocationTargetException
    at java.lang.reflect.Method.invoke(Native Method)
    at android.view.View$1.onClick(View.java:3818)
    ... 9 more
 Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.androiddevbook.onyourbike.chapter4/com.androiddevbook.onyourbike.chapter4.Media}; have you declared this activity in your AndroidManifest.xml?
    at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1628)
    at android.app.Instrumentation.execStartActivity(Instrumentation.java:1424)
    at android.app.Activity.startActivityForResult(Activity.java:3424)
    at android.app.Activity.startActivityForResult(Activity.java:3385)
    at android.app.Activity.startActivity(Activity.java:3627)
    at android.app.Activity.startActivity(Activity.java:3595)
    at com.androiddevbook.onyourbike.chapter4.TimerActivity.clickedMusic(TimerActivity.java:178)
    ... 11 more
java类:

package com.androiddevbook.onyourbike.chapter4;

import java.util.concurrent.TimeUnit;

import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Handler;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.SeekBar;
import android.widget.TextView;
import android.widget.Toast;
import com.androiddevbook.onyourbike.chapter4.R;

public class Media extends Activity {

   public TextView songName,startTimeField,endTimeField;
   private MediaPlayer mediaPlayer;
   private double startTime = 0;
   private double finalTime = 0;
   private Handler myHandler = new Handler();;
   private int forwardTime = 5000; 
   private int backwardTime = 5000;
   private SeekBar seekbar;
   private ImageButton playButton,pauseButton;
   public static int oneTimeOnly = 0;
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_media);
      songName = (TextView)findViewById(R.id.textView4);
      startTimeField =(TextView)findViewById(R.id.textView1);
      endTimeField =(TextView)findViewById(R.id.textView2);
      seekbar = (SeekBar)findViewById(R.id.seekBar1);
      playButton = (ImageButton)findViewById(R.id.imageButton1);
      pauseButton = (ImageButton)findViewById(R.id.imageButton2);
      songName.setText("song.mp3");
      mediaPlayer = MediaPlayer.create(this, R.raw.song);
      seekbar.setClickable(false);
      pauseButton.setEnabled(false);

   }

   public void play(View view){
   Toast.makeText(getApplicationContext(), "Playing sound", 
   Toast.LENGTH_SHORT).show();
      mediaPlayer.start();
      finalTime = mediaPlayer.getDuration();
      startTime = mediaPlayer.getCurrentPosition();
      if(oneTimeOnly == 0){
         seekbar.setMax((int) finalTime);
         oneTimeOnly = 1;
      } 

      endTimeField.setText(String.format("%d min, %d sec", 
         TimeUnit.MILLISECONDS.toMinutes((long) finalTime),
         TimeUnit.MILLISECONDS.toSeconds((long) finalTime) - 
         TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.
         toMinutes((long) finalTime)))
      );
      startTimeField.setText(String.format("%d min, %d sec", 
         TimeUnit.MILLISECONDS.toMinutes((long) startTime),
         TimeUnit.MILLISECONDS.toSeconds((long) startTime) - 
         TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.
         toMinutes((long) startTime)))
      );
      seekbar.setProgress((int)startTime);
      myHandler.postDelayed(UpdateSongTime,100);
      pauseButton.setEnabled(true);
      playButton.setEnabled(false);
   }

   private Runnable UpdateSongTime = new Runnable() {
      public void run() {
         startTime = mediaPlayer.getCurrentPosition();
         startTimeField.setText(String.format("%d min, %d sec", 
            TimeUnit.MILLISECONDS.toMinutes((long) startTime),
            TimeUnit.MILLISECONDS.toSeconds((long) startTime) - 
            TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.
            toMinutes((long) startTime)))
         );
         seekbar.setProgress((int)startTime);
         myHandler.postDelayed(this, 100);
      }
   };
   public void pause(View view){
      Toast.makeText(getApplicationContext(), "Pausing sound", 
      Toast.LENGTH_SHORT).show();

      mediaPlayer.pause();
      pauseButton.setEnabled(false);
      playButton.setEnabled(true);
   }    
   public void forward(View view){
      int temp = (int)startTime;
      if((temp+forwardTime)<=finalTime){
         startTime = startTime + forwardTime;
         mediaPlayer.seekTo((int) startTime);
      }
      else{
         Toast.makeText(getApplicationContext(), 
         "Cannot jump forward 5 seconds", 
         Toast.LENGTH_SHORT).show();
      }

   }
   public void rewind(View view){
      int temp = (int)startTime;
      if((temp-backwardTime)>0){
         startTime = startTime - backwardTime;
         mediaPlayer.seekTo((int) startTime);
      }
      else{
         Toast.makeText(getApplicationContext(), 
         "Cannot jump backward 5 seconds",
         Toast.LENGTH_SHORT).show();
      }

   }

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

 }
package com.androiddevbook.onyourbike.chapter4;
导入java.util.concurrent.TimeUnit;
导入android.media.MediaPlayer;
导入android.os.Bundle;
导入android.os.Handler;
导入android.app.Activity;
导入android.view.Menu;
导入android.view.view;
导入android.widget.Button;
导入android.widget.EditText;
导入android.widget.ImageButton;
导入android.widget.SeekBar;
导入android.widget.TextView;
导入android.widget.Toast;
导入com.androiddevbook.onyourbike.chapter4.R;
公共类媒体扩展活动{
公共文本视图songName、startTimeField、endTimeField;
私人媒体播放器;
专用双起始时间=0;
私人双最终时间=0;
私有处理程序myHandler=新处理程序();;
专用int forwardTime=5000;
专用int backwardTime=5000;
私人SeekBar SeekBar;
专用图像按钮播放按钮、暂停按钮;
公共静态int-oneTimeOnly=0;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_media);
songName=(TextView)findViewById(R.id.textView4);
startTimeField=(TextView)findViewById(R.id.textView1);
endTimeField=(TextView)findViewById(R.id.textView2);
seekbar=(seekbar)findViewById(R.id.seekBar1);
playButton=(ImageButton)findViewById(R.id.imageButton1);
pauseButton=(ImageButton)findViewById(R.id.imageButton2);
songName.setText(“song.mp3”);
mediaPlayer=mediaPlayer.create(这个,R.raw.song);
seekbar.setClickable(假);
pauseButton.setEnabled(false);
}
公共无效播放(视图){
Toast.makeText(getApplicationContext(),“播放声音”,
吐司。长度(短)。show();
mediaPlayer.start();
finalTime=mediaPlayer.getDuration();
startTime=mediaPlayer.getCurrentPosition();
if(oneTimeOnly==0){
seekbar.setMax((int)finalTime);
一次性=1;
} 
endTimeField.setText(String.format(“%d分钟,%d秒”),
时间单位。毫秒。toMinutes((长)finalTime),
时间单位。毫秒。到秒((长)最终时间)——
TimeUnit.MINUTES.toSeconds(TimeUnit.millides。
toMinutes((长)finalTime)))
);
startTimeField.setText(String.format(“%d分钟,%d秒”),
时间单位。毫秒。t分钟((长)开始时间),
时间单位毫秒到秒((长)开始时间)-
TimeUnit.MINUTES.toSeconds(TimeUnit.millides。
t分钟((长)开始时间)
);
seekbar.setProgress((int)startTime);
postDelayed(UpdateSongTime,100);
pauseButton.setEnabled(true);
playButton.setEnabled(假);
}
private Runnable UpdateSongTime=new Runnable(){
公开募捐{
startTime=mediaPlayer.getCurrentPosition();
startTimeField.setText(String.format(“%d分钟,%d秒”),
时间单位。毫秒。t分钟((长)开始时间),
时间单位毫秒到秒((长)开始时间)-
TimeUnit.MINUTES.toSeconds(TimeUnit.millides。
t分钟((长)开始时间)
);
seekbar.setProgress((int)startTime);
myHandler.postDelayed(这个,100);
}
};
公共无效暂停(视图){
Toast.makeText(getApplicationContext(),“暂停声音”,
吐司。长度(短)。show();
mediaPlayer.pause();
pauseButton.setEnabled(false);
playButton.setEnabled(真);
}    
公共无效前进(视图){
int temp=(int)开始时间;
如果((临时+转发时间)0){
startTime=startTime-后退时间;
mediaPlayer.seekTo((int)startTime);
}
否则{
Toast.makeText(getApplicationContext(),
“不能向后跳5秒”,
吐司。长度(短)。show();
}
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
//为菜单充气;这会将项目添加到操作栏(如果存在)。
getMenuInflater().充气(R.menu.media,menu);
返回true;
}
}

任何帮助都将不胜感激。谢谢…

在您的AndroidManifest.xml上注册您的活动类

所以你的清单文件应该是这样的

<activity android:name=".MainActivity"
              android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>        
        </intent-filter>
    </activity>
<activity android:name="yourActivity"></activity>


这将解决问题

异常询问您:“无法找到显式活动类{com.androiddevbook.onyourbike.chapter4/com.androiddevbook.onyourbike.chapter4.Media};您是否在AndroidManifest.xml中声明了此活动?”是否?您可能忘记在清单中添加内容:){com.androiddevbook.onyourbike.chapter4/com.androiddevbook.onyourbike.chapter4.Media};你在你的AndroidManifest.xml中声明过这个活动了吗?哇。尼克比我快了一步!绝对正确!你们救了我的命…很多。这正是我所错过的