diff --git a/src/plugins/android/androidtoolchain.cpp b/src/plugins/android/androidtoolchain.cpp index a2aa988d47a..9d3b8db27bf 100644 --- a/src/plugins/android/androidtoolchain.cpp +++ b/src/plugins/android/androidtoolchain.cpp @@ -150,7 +150,8 @@ QString AndroidToolChain::typeDisplayName() const bool AndroidToolChain::isValid() const { return GccToolChain::isValid() && targetAbi().isValid() && !m_ndkToolChainVersion.isEmpty() - && compilerCommand().isChildOf(AndroidConfigurations::currentConfig().ndkLocation()); + && compilerCommand().isChildOf(AndroidConfigurations::currentConfig().ndkLocation()) + && !originalTargetTriple().isEmpty(); } void AndroidToolChain::addToEnvironment(Environment &env) const @@ -417,6 +418,9 @@ bool AndroidToolChainFactory::versionCompareLess(const QList &a, const QLis bool AndroidToolChainFactory::versionCompareLess(QList atc, QList btc) { + if (atc.isEmpty() || btc.isEmpty()) + return false; + const QList a = versionNumberFromString(atc.at(0)->ndkToolChainVersion()); const QList b = versionNumberFromString(btc.at(0)->ndkToolChainVersion()); @@ -463,7 +467,7 @@ AndroidToolChainFactory::autodetectToolChainsForNdk(const FileName &ndkPath, FileName compilerPath = AndroidConfigurations::currentConfig().gccPath(abi, lang, version); AndroidToolChain *tc = findToolChain(compilerPath, lang, alreadyKnown); - if (!tc) { + if (!tc || tc->originalTargetTriple().isEmpty()) { tc = new AndroidToolChain(abi, version, lang, ToolChain::AutoDetection); tc->resetToolChain(compilerPath); @@ -473,6 +477,8 @@ AndroidToolChainFactory::autodetectToolChainsForNdk(const FileName &ndkPath, toolChainBundle.append(tc); } + QTC_ASSERT(!toolChainBundle.isEmpty(), continue); + auto it = newestToolChainForArch.constFind(abi); if (it == newestToolChainForArch.constEnd()) newestToolChainForArch.insert(abi, toolChainBundle);