Я оцениваю Scala на Android, начав с демонстрации NotesList.Мне удалось без проблем заменить файл NotesLiveFolder.java
его эквивалентом Scala.
Затем я представил Roboguice, создав простой NotesListApplication.java
, который настраивает модули Guice, и успешно ввел ресурс в NoteEditor.java
активность.
Наконец, когда я пытался заменить NotesListApplication.java
его эквивалентом Scala, я получаю следующую ошибку времени выполнения до завершения загрузки приложения:
java.lang.ClassNotFoundException: com.example.android.notepad.NotesListApplication in loader dalvik.system.PathClassLoader[/data/app/com.example.android.notepad-1.apk]
Я создал проект Google Code , содержащий полный проект Eclipse и исходный код.Исходное функционирование NotesListApplication.java
:
package com.example.android.notepad;
import java.util.List;
import roboguice.application.RoboApplication;
import com.google.inject.Module;
public class NotesListApplication extends RoboApplication {
private Module module = new BindEverything();
public void setModule(Module module) {
this.module = module;
}
@Override
protected void addApplicationModules(List<Module> modules) {
modules.add(module);
}
}
и эквивалент Scala, который вызывает ошибку:
package com.example.android.notepad
import roboguice.application.RoboApplication
class NotesListApplication extends RoboApplication {
val module : Module = new BindEverything()
override protected def addApplicationModules(modules:java.util.List[Module] ) {
modules.add(module)
}
}
Я строю в Eclipse с помощью плагина ScalaIDE.Я не работаю с Treehaker / Proguard / и т.д.
Разборка показывает классы Scala, как и ожидалось:
Class descriptor : 'Lcom/example/android/notepad/NotesLiveFolder;'
...
Class descriptor : 'Lcom/example/android/notepad/NotesListApplication;'
Любые идеичто может вызвать это?