2013-09-29 21 views
5

我一直在努力让这个工作,甚至完全按照教程所说的那样复制和粘贴代码,但它似乎不起作用。我知道问题出在MainActivity或DisplayMessageActivity上,但我看不出有什么问题。我还在与MainActivity相同的文件夹中安装了DisplayMessageActivity。Android的第一个应用教程问题

我收到以下错误。

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 

我一直在摆弄这一段时间,无法弄清楚我做错了什么。任何帮助深表感谢。

我有什么,

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和Peter是正确的。它不能马上工作的唯一原因是因为我弄乱了其他东西。多谢你们!

+0

做'Ctrl' +'Shift' +'O'先安排你的进口。 –

+0

我有同样的问题,但我似乎无法找到这个'build.gradle'文件,我正在使用IntelliJ IDEA 13.1.1 – Baig

回答

2

昨天我有同样的问题(: 您需要添加到您的importsDisplayMessageActivity

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

此外,您还需要添加到您的build.gradle文件dependencies部分:

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

关于支持您可以红色的库here

+0

工作,谢谢!现在我唯一的问题是 摇篮:错误:无法找到符号类DisplayMessageActivity 这是在正确的文件夹,是一类和拼写正确。出于某种原因,它没有被承认。它的表现就像它不在清单中,但它是? – user2827799

+0

你使用什么IDE?我遇到了Android Studio的问题,它通过重新启动IDE解决。 Android Studio尚不稳定。此外,显示您的完整清单文件。 –

+0

我有同样的问题,但我似乎无法找到这个'build.gradle'文件,我正在使用IntelliJ IDEA 13.1.1 – Baig

1

我在DisplayMessageActivity类中看不到SuppressLint的导入。添加正确的导入。

也不是SuppressLint注解在API级别16中添加。确保您使用构建SDK到16或更高版本。

+0

我正在使用生成SDK 17+。 SupressLint的进口确实让这个错误消失了! 我还是得到了;软件包R不存在,找不到符号变量NavUtils,并且找不到符号类DisplayMessageActivity(来自MainActivity)。 我试着在做这个主题之前使用谷歌搜索这个东西,但找不到任何适合我的东西。 – user2827799

1

最后一部分o如果你的问题是你没有'package com.example.firstapp;'在DisplayMessageActivity.java的顶部。

1

至于Android的第一个应用程序documentiaont他们已经明确提到如下。附近的***

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.

因此,请注意,如果你更多的文档中向下滚动,你可以找到主题创建第二个活动,创造新的DisplayMessageActivity。

Android First App Tutorial By Google

-1

添加到您的activity_display_message.xml

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