2013-09-29 11 views
5

Próbowałem uruchomić tę funkcję, nawet kopiowanie i wklejanie kodu dokładnie tak, jak mówi samouczek, ale to nie działa. Wiem, że problem dotyczy MainActivity lub DisplayMessageActivity, ale nie widzę, co jest nie tak. Mam również DisplayMessageActivity w tym samym folderze co MainActivity.Pierwsza aplikacja Android Problem z wersją

Otrzymuję następujące błędy.

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 

Bywam z tym przez chwilę i nie mogę zrozumieć, co robię źle. Każda pomoc jest doceniana.

co mam,

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

główną działalność

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

} 

AKTUALIZACJA

Juned i Peter mieli rację. Jedynym powodem, dla którego nie działał od razu, było to, że pomieszałem coś innego. Dzięki chłopaki!

+0

Czy 'Ctrl' +' Shift' + 'O' aby zorganizować import pierwszy. –

+0

Mam ten sam problem, ale nie mogę znaleźć tego pliku 'build.gradle', używam IntelliJ IDEA 13.1.1 – Baig

Odpowiedz

2

miałem ten sam problem wczoraj (: Trzeba dodać do imports w DisplayMessageActivity

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

Ponadto, należy dodać do pliku build.gradle w dependencies sekcji:

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

Informacje o bibliotekach pomocy technicznej można zmienić na: here.

+0

To zadziałało, dziękuję! Teraz mój jedyny problem to Grad: błąd: nie można znaleźć symbolu klasy DisplayMessageActivity Jest w prawym folderze, jest klasą i jest poprawnie napisany. Z jakiegoś powodu nie jest to potwierdzane. Zachowuje się tak, jakby nie był w manifeście, ale tak jest? – user2827799

+0

Jakiego IDE używasz? Wystąpił problem z Androidem Studio, który został rozwiązany przez ponowne uruchomienie IDE. Android Studio nie jest jeszcze stabilny. Pokaż także pełny plik manifestu. –

+0

Mam ten sam problem, ale nie mogę znaleźć tego pliku 'build.gradle', używam IntelliJ IDEA 13.1.1 – Baig

1

Nie widzę przywozu dla SuppressLint w klasie DisplayMessageActivity. Dodaj poprawny import.

Nie dodałem również adnotacji SuppressLint na poziomie interfejsu API 16. Upewnij się, że korzystasz z SDK do wersji 16 lub wyższej.

+0

Używam Build SDK 17+. Import dla SupressLint spowodował, że błąd zniknął! Nadal dostaję; pakiet R nie istnieje, nie można znaleźć zmiennej symbolu NavUtils i nie można znaleźć klasy symbolu DisplayMessageActivity (z MainActivity). Próbowałem Googling tych rzeczy przed podjęciem tego tematu, ale nie mogłem znaleźć nic, co pracowało dla mnie. – user2827799

1

Ostatnia część Wasz problem polega na tym, że nie masz "package com.example.firstapp;" na górze DisplayMessageActivity.java.

1

Jeśli chodzi o pierwszą dokumentację aplikacji na Androida, wyraźnie wspomniano, jak poniżej. Nota pobliżu ***

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.

Dlatego też, jeśli przewinąć więcej w dokumentacji można znaleźć temat utworzyć drugi aktywny że tworzenie nowego DisplayMessageActivity.

Android First App Tutorial By Google

-1

dodać go do activity_display_message.xml

android:id="@+id/activity_display_message"> 
Powiązane problemy