Проблемы с использованием startActivity обезьяны

Я прочитал несколько сообщений в Интернете, в том числе на веб-сайте разработчиков Android http://developer.android.com/tools/help/monkeyrunner_concepts.html

Я не могу запустить действие с помощью метода startActivity. Я пробовал несколько вариантов. Вот пример кода:

package = 'com.mydomain.mypackage'
activity = '.MyActivity'
runComponent = package + '/' + activity
device.startActivity(component=runComponent)

Также пробовал следующий код:

package = 'com.mydomain.mypackage'
activity = 'com.mydomain.mypackage.MyActivity'
runComponent = package + '/' + activity
device.startActivity(component=runComponent)

Но ничего, похоже, не запускает активность. Я ожидаю, что денежный инструмент начнет действовать, что означает, что я смогу видеть экран.

Любая помощь будет оценена.

Спасибо.


person user3277846    schedule 14.06.2014    source источник


Ответы (2)


Что ж, я рад, что вы решили свою проблему, но это не общее решение, поэтому я хотел бы добавить несколько вещей для людей, которые ищут здесь ответ. Мне потребовалось так много времени, чтобы понять это самому, поэтому я надеюсь, что смогу помочь кому-то сэкономить время:

Имя моего пакета (значение атрибута "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

Я исправил... решение было найдено здесь https://groups.google.com/forum/#!topic/android-developers/FvlBxSmNrk0

Например, если ваш (значение атрибута «package» элемента в вашем AndroidManifest.xml) — «com.example.test.application», а ваше основное имя класса Activity «MainActivity» в пакете Java «com.example .myapp", тогда имя компонента

com.example.test.application/com.example.myapp.MainActivity

person user3277846    schedule 14.06.2014