4

自動生成されたコード セクションでエラーが発生します: R.drawable. 次のエラーの解決策を提案してください。

R.drawable.icon :- アイコンを解決できないか、フィールドではありません

このエラーを含む .java ファイルは次のようになります。

package net.learn2develop.UsingNotifications;

import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Intent;
import android.os.Bundle;

public class DisplayNotifications extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        //---get the notification ID for the notification; 
        // passed in by the MainActivity---
        int notifID = getIntent().getExtras().getInt("NotifID");

        //---PendingIntent to launch activity if the user selects 
        // the notification---
        Intent i = new Intent("net.learn2develop.AlarmDetails");
        i.putExtra("NotifID", notifID);  

        PendingIntent detailsIntent = 
            PendingIntent.getActivity(this, 0, i, 0);

        NotificationManager nm = (NotificationManager)
            getSystemService(NOTIFICATION_SERVICE);
        Notification notif = new Notification(
            R.drawable.icon,
            "Time's up!",
            System.currentTimeMillis());

        CharSequence from = "AlarmManager - Time's up!";
        CharSequence message = "This is your alert, courtesy of the AlarmManager";        
        notif.setLatestEventInfo(this, from, message, detailsIntent);

        //---100ms delay, vibrate for 250ms, pause for 100 ms and
        // then vibrate for 500ms---
        notif.vibrate = new long[] { 100, 250, 100, 500};        
        nm.notify(notifID, notif);
        //---destroy the activity---
        finish();
    }
}

マニフェスト ファイルにも次のように示されています。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="net.learn2develop.UsingNotifications"
      android:versionCode="1"
      android:versionName="1.0">
    <uses-sdk android:minSdkVersion="8" />

    <uses-permission android:name="android.permission.VIBRATE"></uses-permission>

    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <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=".AlarmDetails" 
            android:label="Details of the alarm">
            <intent-filter>
                <action android:name="net.learn2develop.AlarmDetails" />
                <category android:name="android.intent.category.DEFAULT" /> 
            </intent-filter>
        </activity>

        <activity android:name=".DisplayNotification" >
            <intent-filter>
                <action android:name="net.learn2develop.DisplayNotification" />
                <category android:name="android.intent.category.DEFAULT" /> 
            </intent-filter>
        </activity>

    </application>
</manifest>
4

2 に答える 2

3

このトピックに簡単な追加の回答を追加すると思いました。私は Android 開発に非常に慣れていないため、描画可能な属性が見つからなかったため、クラスの 1 つがコンパイルされていないことがわかりました。最後に、クラスがインポートしていたという事実まで問題を追跡しましたandroid.R(Eclipseによってインポートリストに自動的に追加されました)。その行が削除されるとすぐに、クラスがコンパイルされました。

于 2013-04-23T17:49:46.157 に答える
1

dir gen の下に R.java というファイルがあるかどうかを確認する必要があります。その場合は、それを開いて、icon という属性があるかどうかを確認します。

プロジェクトを移動したか、他のプロジェクトから何かをコピーした可能性があります。いずれの場合でも、gen の下のファイルを手動で削除して、Eclipse に再作成させることができます。そうでない場合は、プロジェクトの下に移動してから、プロジェクトを選択してクリーンアップできます。それはうまくいくはずです。

于 2012-07-31T19:32:01.190 に答える