diff --git a/src/plugins/android/androidsettingspage.cpp b/src/plugins/android/androidsettingspage.cpp index d25df79802a..28722c3e30a 100644 --- a/src/plugins/android/androidsettingspage.cpp +++ b/src/plugins/android/androidsettingspage.cpp @@ -83,7 +83,14 @@ void AndroidSettingsPage::apply() ProjectExplorer::ToolChainManager::instance()->registerToolChain(tc); } - // TODO deregister old automatic toolchains? + for (int i = 0; i < existingToolChains.count(); ++i) { + ProjectExplorer::ToolChain *tc = existingToolChains.at(i); + if (tc->type() == QLatin1String(Constants::ANDROID_TOOLCHAIN_TYPE)) { + if (!tc->isValid()) { + ProjectExplorer::ToolChainManager::instance()->deregisterToolChain(tc); + } + } + } AndroidConfigurations::instance().updateAutomaticKitList(); } diff --git a/src/plugins/android/androidtoolchain.cpp b/src/plugins/android/androidtoolchain.cpp index 016e3acf910..3b00796d19d 100644 --- a/src/plugins/android/androidtoolchain.cpp +++ b/src/plugins/android/androidtoolchain.cpp @@ -101,7 +101,8 @@ QString AndroidToolChain::typeDisplayName() const bool AndroidToolChain::isValid() const { - return GccToolChain::isValid() && targetAbi().isValid() && !m_ndkToolChainVersion.isEmpty(); + return GccToolChain::isValid() && targetAbi().isValid() && !m_ndkToolChainVersion.isEmpty() + && compilerCommand().isChildOf(AndroidConfigurations::instance().config().ndkLocation); } void AndroidToolChain::addToEnvironment(Environment &env) const