Что ж, я рад, что вы решили свою проблему, но это не общее решение, поэтому я хотел бы добавить несколько вещей для людей, которые ищут здесь ответ. Мне потребовалось так много времени, чтобы понять это самому, поэтому я надеюсь, что смогу помочь кому-то сэкономить время:
Имя моего пакета (значение атрибута "package" элемента в моем AndroidManifest.xml, как вы также упомянули): com.companyname.android.tv
и моя основная (пусковая) активность: com.companyname.android.tv.TvActivity
все еще это не работает:
package = 'com.companyname.android.tv'
activity = 'com.companyname.android.tv.TvActivity'
runComponent = package + '/' + activity
device.startActivity(component=runComponent)
затем я попытался запустить действие из студии Android, что удалось, и проверить журналы. вот что я нашел:
Запуск приложения: com.companyname.android_tv_app/com.companyname.android.tv.TvActivity.
поэтому я попробовал этот, который сработал:
package = 'com.companyname.android_tv_app'
activity = 'com.companyname.android.tv.TvActivity'
runComponent = package + '/' + activity
device.startActivity(component=runComponent)
«android_tv_app» — это имя нашего приложения. это не написано в вашем файле манифеста. это происходит только в одном месте, в файле build.gradle приложения, например:
applicationId "com.companyname.android_tv_app"
Поэтому, если вы продолжаете терпеть неудачу с startActivity с monkeyrunner, вы можете попробовать заменить имя вашего пакета идентификатором приложения. и это имеет смысл, так как monkeyrunner пытается сказать системе: "иди, найди это приложение, запусти это действие" и без идентификатора приложения, похоже, не может найти пакет же.
Вероятно, у большинства людей одно и то же имя пакета и идентификатор приложения, потому что мастер помогает вам сохранить их такими, но когда вы переименовываете свое приложение и/или имена пакетов, это не так.
person
gezgingun
schedule
02.02.2015