我刚开始跟随这个教程构建一个安卓应用。一切都很顺利,直到最后一步我们创建了一个Intent对象来启动NoteSelect活动,尽管该类在同一个文件夹中。以下是错误信息 -
问题似乎出现在
有任何想法我出了什么问题吗?
Information:Gradle tasks [:app:assembleDebug]
F:\Path\Memos\app\src\main\java\com\example\memos\memos\MainActivity.java
Error:(99, 57) error: cannot find symbol class NoteSelect
Error:Execution failed for task ':app:compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.
Information:BUILD FAILED in 19s
Information:2 errors
Information:0 warnings
Information:See complete output in console
这里是层次结构 -
MainActivity.java(onOptionsItemSelected())
package com.example.memos.memos;
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
Intent myIntent = new Intent(MainActivity.this, NoteSelect.class);
if (id == R.id.action_settings) {
startActivity(myIntent);
return true;
}
return super.onOptionsItemSelected(item);
}
NoteSelect.java(没有提及琐碎的导入)
import com.example.memos.memos.R;
public class NoteSelect extends AppCompatActivity {
private List <NotesBuilder> notesList = new ArrayList<>();
private NotesAdapter nAdapter;
private RecyclerView notesRecycler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_note_select);
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
FloatingActionButton fab = findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});
notesRecycler = findViewById(R.id.notes);
nAdapter = new NotesAdapter(notesList);
RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(getApplicationContext());
notesRecycler.setLayoutManager(mLayoutManager);
notesRecycler.setItemAnimator(new DefaultItemAnimator());
notesRecycler.setAdapter(nAdapter);
prepareNotes();
}
private void prepareNotes() {
File directory;
directory = getFilesDir();
File[] files = directory.listFiles();
String theFile;
for (int f = 1; f <= files.length; f++) {
theFile = "Note" + f + ".txt";
NotesBuilder note = new NotesBuilder(theFile, Open(theFile));
notesList.add(note);
}
}
public String Open(String fileName) {
String content = "";
try {
InputStream in = openFileInput(fileName);
if ( in != null) {
InputStreamReader tmp = new InputStreamReader( in );
BufferedReader reader = new BufferedReader(tmp);
String str;
StringBuilder buf = new StringBuilder();
while ((str = reader.readLine()) != null) {
buf.append(str + "\n");
} in .close();
content = buf.toString();
}
} catch (java.io.FileNotFoundException e) {} catch (Throwable t) {
Toast.makeText(this, "Exception: " + t.toString(), Toast.LENGTH_LONG).show();
}
return content;
}
}
问题似乎出现在
AndroidManifest.xml
、content_note_select.xml
和activity_note_select.xml
文件中。
到目前为止,我已经尝试将NoteSelect.java包含在与解决NoteSelect类未找到问题的MainActivity.java相同的包中,但进一步导致NoteSelect.java中的NoteBuilder和NoteAdapter类未找到的问题。此外,由于原始教程中没有提到这样的方法,我也不喜欢这种方法。有任何想法我出了什么问题吗?
package
行...你是怎么创建这个类的?是通过文件 > 新建... > 活动(Activity)吗? - OneCricketeerpackage com.example.memos.memos
吗?如果是的话,我确实尝试过,但这导致了另一个问题。我在问题底部已经提到了那个问题。 - Saharsh