QA@IT

eclipseでアンドロイドの歩数計アプリをつくっているのですが、エラーが出てしまいます。

3822 PV

androidのセンサーについてを表示する部分でソース通りにつくっているのですが、mainとcommentと32行目と33行目にあるlvaluex,lvaluey,lvaluezでエラーが出てしまいます。初心者なものでどうすればいいのかわかりません。原因は一体何なのか教えていただけるとありがたいです。
追記:エラーの内容は、『解決できないかフィールドがありません』と出てしまいます。よろしくお願いします。

package com.m_hi.android;

import java.util.List;

import android.app.Activity;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;

public class CheckAccelerometerActivity extends Activity {
/** Called when the activity is first created. */
SensorAdapter ad;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);←ここと

    SensorManager manager = (SensorManager) getSystemService(SENSOR_SERVICE);
    List<Sensor> sensors = manager.getSensorList(Sensor.TYPE_ALL);
    TextView comment = (TextView) findViewById(R.id.comment);←ここと
    String val = "サポートセンサー\n";
    for (Sensor s : sensors) {
        val += s.getName() + "\n";
    }
    comment.setText(val);

    ad = new SensorAdapter(findViewById(R.id.lvaluex),
            findViewById(R.id.lvaluey), findViewById(R.id.lvaluez)); ←ここです。
}

@Override
protected void onDestroy() {
    super.onDestroy();
    ad.stopSensor();
}

class SensorAdapter implements SensorEventListener {

    private SensorManager manager;
    private TextView vx;
    private TextView vy;
    private TextView vz;

    public SensorAdapter(View vx, View vy, View vz) {
        manager = (SensorManager) getSystemService(SENSOR_SERVICE);
        this.vx = (TextView) vx;
        this.vy = (TextView) vy;
        this.vz = (TextView) vz;
        List<Sensor> sensors = manager
                .getSensorList(Sensor.TYPE_ACCELEROMETER);
        if (sensors.size() > 0) {
            Sensor s = sensors.get(0);
            manager.registerListener(this, s, SensorManager.SENSOR_DELAY_UI);
        }
    }

    public void stopSensor() {
        manager.unregisterListener(this);
        this.vx = null;
        this.vy = null;
        this.vz = null;
    }

    @Override
    public void onAccuracyChanged(Sensor arg0, int arg1) {
    }

    @Override
    public void onSensorChanged(SensorEvent event) {
        if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {

            vx.setText("" + event.values[0]);
            vy.setText("" + event.values[1]);
            vz.setText("" + event.values[2]);
        }
    }

}

}

  • エラーの情報も載せたほうがいいでしょう。 -

回答

返信が遅れてすみません。とても参考になりました。
どうやら回答者さんの言うとおりmain.xmlが少しおかしかったようです。
親切に説明していただきありがとうございました!

編集 履歴 (0)

エラー的にRクラスの生成されていないかリソースがないかが疑われます。

res/layout/main.xml といったリソースファイルが用意できているはずであれば

Android SDK ManagerでAndroid SDK Build-toolsがインストールされているかを確認してみるといいかもしれません。

以下は参考リンクです

[メモ] Eclipse の Android環境が壊れたと思った時のチェック
http://taedoo.at.webry.info/201307/article_4.html

Eclipse giving error, missing R.java file after recent update
http://stackoverflow.com/questions/16608524/eclipse-giving-error-missing-r-java-file-after-recent-update

編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。