diff --git a/src/anbox/cmds/launch.h b/src/anbox/cmds/launch.h index 4797aea..2aa3d0f 100644 --- a/src/anbox/cmds/launch.h +++ b/src/anbox/cmds/launch.h @@ -38,7 +38,7 @@ class Launch : public cli::CommandWithFlagsAndAction { bool try_launch_activity(const std::shared_ptr &stub); android::Intent intent_; - wm::Stack::Id stack_; + wm::Stack::Id stack_ = wm::Stack::Id::Default; bool use_system_dbus_ = false; }; } // namespace cmds diff --git a/src/anbox/dbus/skeleton/application_manager.cpp b/src/anbox/dbus/skeleton/application_manager.cpp index 44cf71e..f65902e 100644 --- a/src/anbox/dbus/skeleton/application_manager.cpp +++ b/src/anbox/dbus/skeleton/application_manager.cpp @@ -92,6 +92,10 @@ int ApplicationManager::method_launch(sd_bus_message *m, void *userdata, sd_bus_ if (r < 0) return r; } + + r = sd_bus_message_exit_container(m); + if (r < 0) + return r; } r = sd_bus_message_exit_container(m); diff --git a/src/anbox/dbus/stub/application_manager.cpp b/src/anbox/dbus/stub/application_manager.cpp index 6d75425..3487793 100644 --- a/src/anbox/dbus/stub/application_manager.cpp +++ b/src/anbox/dbus/stub/application_manager.cpp @@ -114,9 +114,13 @@ void ApplicationManager::launch(const android::Intent &intent, if (r < 0) throw std::runtime_error("Failed to construct DBus message"); - r = sd_bus_call(bus_->raw(), m, 0, nullptr, nullptr); - if (r < 0) - throw std::runtime_error("Failed to call Anbox application manager"); + sd_bus_error error = SD_BUS_ERROR_NULL; + r = sd_bus_call(bus_->raw(), m, 0, &error, nullptr); + if (r < 0) { + const auto msg = utils::string_format("%s", error.message); + sd_bus_error_free(&error); + throw std::runtime_error(msg); + } } core::Property& ApplicationManager::ready() {