2013-09-29 9 views
5

Ich habe versucht, dies zu arbeiten, sogar kopieren und einfügen den Code genau, wie das Tutorial es sagt, aber es scheint nicht zu funktionieren. Ich weiß, das Problem ist in MainActivity oder DisplayMessageActivity, aber ich kann nicht sehen, was falsch ist. Ich habe auch die DisplayMessageActivity im selben Ordner wie MainActivity.Android Erste App Tutorial Ausgabe

Ich bekomme folgende Fehler.

DisplayMessageActivity 
Gradle: error: cannot find symbol class SuppressLint 
Gradle: error: package R does not exist 
Gradle: error: cannot find symbol variable NavUtils 

MainActivity 
Gradle: error: cannot find symbol class DisplayMessageActivity 

Ich habe eine Weile damit herumhantiert und kann nicht herausfinden, was ich falsch mache. Jede Hilfe wird sehr geschätzt.

Was ich habe,

AndroidManifest.xml

~snip~ 
     <activity 
     android:name="com.example.myfirstapp.DisplayMessageActivity" 
     android:label="@string/title_activity_display_message" 
     android:parentActivityName="com.example.myfirstapp.MainActivity" > 
     <meta-data 
      android:name="android.support.PARENT_ACTIVITY" 
      android:value="com.example.myfirstapp.MainActivity" /> 
    </activity> 
~snip~ 

DisplayMessageActivity

import android.app.Activity; 
import android.os.Build; 
import android.os.Bundle; 
import android.view.MenuItem; 



public class DisplayMessageActivity extends Activity { 

    @SuppressLint("NewApi") 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_display_message); 

     // Make sure we're running on Honeycomb or higher to use ActionBar APIs 
     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { 
      // Show the Up button in the action bar. 
      getActionBar().setDisplayHomeAsUpEnabled(true); 
     } 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     switch (item.getItemId()) { 
      case android.R.id.home: 
       NavUtils.navigateUpFromSameTask(this); 
       return true; 
     } 
     return super.onOptionsItemSelected(item); 
    } 
} 

MainActivity

package com.example.myfirstapp; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.View; 
import android.widget.EditText; 

public class MainActivity extends Activity { 
    public final static String EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE"; 
    @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; 
    } 
    public void sendMessage(View view) { 
     Intent intent = new Intent(this, DisplayMessageActivity.class); 
     EditText editText = (EditText) findViewById(R.id.edit_message); 
     String message = editText.getText().toString(); 
     intent.putExtra(EXTRA_MESSAGE, message); 
     startActivity(intent); 
    } 

} 

UPDATE

Juned und Peter hatten Recht. Der einzige Grund, warum es nicht sofort funktionierte, war, dass ich etwas anderes vermasselt hatte. Danke Leute!

+0

Sie 'Ctrl' +' Shift' + 'O' Ihre Importe zuerst zu arrangieren. –

+0

Ich habe das gleiche Problem, aber ich kann nicht scheinen, diese 'build.gradle' Datei zu finden, ich benutze IntelliJ IDEA 13.1.1 – Baig

Antwort

2

Ich hatte das gleiche Problem gestern (: Sie müssen Ihre imports in DisplayMessageActivity

import android.annotation.SuppressLint; 
import android.support.v4.app.NavUtils; 

auch hinzufügen, müssen Sie Ihre build.gradle Datei in dependencies Abschnitt hinzuzufügen:

compile 'com.android.support:support-v4:18.0.+' 

Über Support Libraries können Sie here

+0

Das hat funktioniert, danke! Jetzt ist mein einziges Problem Gradle: Fehler: kann Symbolklasse nicht finden DisplayMessageActivity Es ist im richtigen Ordner, ist eine Klasse und wird richtig geschrieben. Aus irgendeinem Grund wird es nicht bestätigt. Es verhält sich so, als wäre es nicht im Manifest, aber es ist? – user2827799

+0

Welche IDE verwenden Sie? Ich hatte ein Problem mit Android Studio, das durch Neustart der IDE behoben wurde. Android Studio ist noch nicht stabil. Zeigen Sie außerdem Ihre vollständige Manifestdatei an. –

+0

Ich habe das gleiche Problem, aber ich kann nicht scheinen, diese 'build.gradle' Datei zu finden, ich benutze IntelliJ IDEA 13.1.1 – Baig

1

Ich sehe die Importe für SuppressLint in Ihrer DisplayMessageActivity-Klasse nicht. Fügen Sie die richtigen Importe hinzu.

Auch nicht, dass SuppressLint Annotation in API-Ebene 16 hinzugefügt wurde. Stellen Sie sicher, dass Sie SDK Build 16 oder höher verwenden.

+0

Ich benutze Build SDK 17+. Der Import von SupressLint hat diesen Fehler beseitigt! Ich bekomme immer noch; Das Paket R existiert nicht, kann die Symbolvariable NavUtils nicht finden und kann die Symbolklasse DisplayMessageActivity (von MainActivity) nicht finden. Ich habe versucht, dieses Zeug zu googeln, bevor Sie dieses Thema, aber konnte nichts finden, das für mich arbeitete. – user2827799

1

den letzten Teil o.ä. Ihr Problem besteht darin, dass Sie "package com.example.firstapp;" oben in "DisplayMessageActivity.java" nicht haben.

1

Wie für die erste App von Androidiaontonont haben sie klar als unten erwähnt. Der Hinweis in der Nähe der ***

Build an Intent topic , Step 1


Note: The reference to DisplayMessageActivity will raise an error if you’re using an IDE such as Android Studio because the class doesn’t exist yet. Ignore the error for now; you’ll create the class soon.

Deshalb, wenn Sie mehr in der Dokumentation nach unten scrollen, können Sie das Thema finden die zweite Aktivität erstellen, die die neue DisplayMessageActivity erstellen.

Android First App Tutorial By Google

-1

Fügen Sie diese auf Ihre activity_display_message.xml

android:id="@+id/activity_display_message">