Я пишу игру для Android со Scala.Теперь я пытаюсь заставить новую платформу DeCence Wall от Dick Wall работать на Android.
По сути, у меня есть класс, расширяющий android.app.Activity
, который является единственным действием в игре и автоматически запускается Android, когдаПриложение запускается.Теперь мне нужно разрешить этому экземпляру Activity вставлять SubCut.
Обычно вы делаете это следующим образом:
implicit val bindingModule = ProjectConfiguration
val topInstance = new DoStuffOnTheWeb("stuff", new Date())
или
val topInstance = new DoStuffOnTheWeb("stuff", new Date())(ProjectConfiguration)
, но проблема в том, чтоАктивность создается Android, а не из моего кода.Я пытался использовать что-то вроде этого:
class MyGame()(val bindingModule:BindingModule = MyGameConfigurationModule) extends Activity with Injectable {
, но, очевидно, android не знает, как создать это экземпляр, как я теперь получаю:
ERROR/AndroidRuntime(322): FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.mycompany.android.mygame.....
Я думал, можно ли будет«загрузить» SubCut каким-либо образом в методе onCreate () действия, как это делает RoboGuice со структурой Guice DI (он создает экземпляр инжектора в этом методе и передает его this
в качестве параметра.
Другой вариант, который я думалПримерно было бы, если бы я мог пропустить автоматический запуск Activity и вручную запустить его с android.app.Application
с неявным val, требуемым Subcut. Но почему-то это похоже на возникновение проблемы (и да, я очень новичок в разработке для Android).
Есть идеи?