【问题标题】:Syntax error on token "start". Very simple code令牌“开始”的语法错误。非常简单的代码
【发布时间】:2013-03-31 08:50:35
【问题描述】:

我正在尝试学习一些 java/android 开发,但我真的很努力学习基础知识。

我的代码如下所示。

package com.example.app_james3;

import android.media.MediaPlayer;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

public class MainActivity extends Activity {

    MediaPlayer media=MediaPlayer.create(this, R.raw.button);
    media.start();  // THIS LINE IS GIVING ERROR: Syntax error on token "start",    Identifier expected after this token

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

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

}

任何人都可以提供建议以使这条非常简单的线路正常工作吗?我复制了其他代码,所以我相当确定语法是正确的。

【问题讨论】:

    标签: java android


    【解决方案1】:

    在 Java 中,所有语句(任何未声明变量或类的)都必须放在方法或构造函数中。 media.start(); 是一个声明。因此,你应该把它放在一个方法中。

    因为media.start();应该在接近启动时间的时候执行,所以把它放在onCreate中:

    MediaPlayer media;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
        // Your initialization code goes here:
        media = MediaPlayer.create(this, R.raw.button);
        media.start();
    }
    

    【讨论】:

    • 非常感谢,我知道如果这还不为人所知,这些方式会令人不悦……我有几分钟无法接受你的回答,但我很快就会接受。跨度>
    【解决方案2】:

    您必须在活动内部声明变量,但是当您在函数内部或 setcontentview 之后从 xml 初始化值时。 您还必须阅读以下链接:- Why does onClickListener not work outside of onCreate method?

    When does Application's onCreate() method get called?

    What's onCreate(Bundle savedInstanceState)

    public class MainActivity extends Activity { 
    
    
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
    MediaPlayer media=MediaPlayer.create(this, R.raw.button);
    media.start();  // THIS LINE IS GIVING ERROR: Syntax error on token "start",    Identifier expected after this token
    }
    
    @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;
    }
    
    }
    

    【讨论】:

      猜你喜欢
      • 2014-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-30
      • 2020-03-23
      • 1970-01-01
      • 2014-05-27
      • 2013-07-16
      相关资源
      最近更新 更多