我阅读了Hello Android book。该程序将播放我在原始文件夹中复制的声音,但该程序未运行并出错。
错误:
activity_main无法解析或不是字段
temp无法解析或不是字段
Audio.java
package org.example.audio;
import android.app.Activity;
import android.media.MediaPlayer;
import android.view.KeyEvent;
import android.os.Bundle;
public class Audio extends Activity{
private MediaPlayer up;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
up=MediaPlayer.create(this,R.raw.Guilty);
}
@Override
public boolean onKeyDown(int keyCode,KeyEvent event){
MediaPlayer mp;
switch(keyCode){
case KeyEvent.KEYCODE_DPAD_UP:
mp=up;
break;
default:
return super.onKeyDown(keyCode, event);
}
mp.seekTo(0);
mp.start();
return true;
}
}
请帮助我解决错误。 欢呼声。
答案 0 :(得分:4)
删除该行
import android.R;
并导入R以获取适当的包
在这一行
setContentView(R.layout.activity_main);
删除整行并输入直到setContentView(R并给出一个ctrl +空格。你会要求导入几个包,你需要导入一个包含你的项目名称的包(而不是android.R)
或者删除行导入android.R;并简单地清理项目并构建它
答案 1 :(得分:1)
首先删除该行:
import android.R;
然后,如果您正在使用Eclipse,请尝试清理项目:
项目 - >的清洁... 强>
如果您的某个资源文件中有错误,当您按 Ctrl + Shift + O <时,Eclipse会自动导入android.R
文件/ kbd>,这是令人沮丧的。仔细检查 Package Explorer 窗口,查看res
文件夹中的错误图标,并修正您在此处可能发现的任何错误。
R
文件是任何Java / Android项目的一个组成部分。它是编译器存储对您的资源的引用的地方,例如activity_main
布局和temp
声音文件。通过导入外部R
文件,您在尝试使用R
引用(R.layout.activity_main
)时会收到错误,因为您试图在另一个项目中查找它们。
答案 2 :(得分:1)
这是因为系统无法解析您的R.java文件。你使用android.R并调用你的资源。删除android.R然后清理并构建项目
答案 3 :(得分:0)
谢谢你的回答。 我删除导入android.R并在res / raw中复制另一首歌。(我编辑我的第一篇文章)但该程序有两个错误。
Guilty无法解决或不是字段
当我用临时音乐删除android.R时,程序运行但没有声音。我用另一种声音改变声音并且程序没有运行:((为什么?
RES /布局/ activity_main.xml中
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="@string/hello_world"
tools:context=".MainActivity" />
</RelativeLayout>