forked from qt-creator/qt-creator
Send static_init_classes paratemer to Android application
Change-Id: I3eba3413464bd0e503f24817769bd3062be0eeb2 Reviewed-by: Daniel Teske <daniel.teske@digia.com>
This commit is contained in:
committed by
Daniel Teske
parent
2112e1e5dc
commit
674ec5efa9
@@ -570,6 +570,11 @@ QString AndroidManager::loadLocalJars(ProjectExplorer::Target *target, int apiLe
|
|||||||
return loadLocal(target, apiLevel, Jar);
|
return loadLocal(target, apiLevel, Jar);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString AndroidManager::loadLocalJarsInitClasses(ProjectExplorer::Target *target, int apiLevel)
|
||||||
|
{
|
||||||
|
return loadLocal(target, apiLevel, Jar, QLatin1String("initClass"));
|
||||||
|
}
|
||||||
|
|
||||||
QStringList AndroidManager::availableQtLibs(ProjectExplorer::Target *target)
|
QStringList AndroidManager::availableQtLibs(ProjectExplorer::Target *target)
|
||||||
{
|
{
|
||||||
QtSupport::BaseQtVersion *version = QtSupport::QtKitInformation::qtVersion(target->kit());
|
QtSupport::BaseQtVersion *version = QtSupport::QtKitInformation::qtVersion(target->kit());
|
||||||
@@ -686,7 +691,7 @@ void AndroidManager::raiseError(const QString &reason)
|
|||||||
QMessageBox::critical(0, tr("Error creating Android templates"), reason);
|
QMessageBox::critical(0, tr("Error creating Android templates"), reason);
|
||||||
}
|
}
|
||||||
|
|
||||||
QString AndroidManager::loadLocal(ProjectExplorer::Target *target, int apiLevel, ItemType item)
|
QString AndroidManager::loadLocal(ProjectExplorer::Target *target, int apiLevel, ItemType item, const QString &attribute)
|
||||||
{
|
{
|
||||||
QString itemType;
|
QString itemType;
|
||||||
if (item == Lib)
|
if (item == Lib)
|
||||||
@@ -717,13 +722,15 @@ QString AndroidManager::loadLocal(ProjectExplorer::Target *target, int apiLevel,
|
|||||||
if (libs.contains(element.attribute(QLatin1String("name")))) {
|
if (libs.contains(element.attribute(QLatin1String("name")))) {
|
||||||
QDomElement libElement = element.firstChildElement(QLatin1String("depends")).firstChildElement(itemType);
|
QDomElement libElement = element.firstChildElement(QLatin1String("depends")).firstChildElement(itemType);
|
||||||
while (!libElement.isNull()) {
|
while (!libElement.isNull()) {
|
||||||
localLibs += libElement.attribute(QLatin1String("file")).arg(apiLevel) + QLatin1Char(':');
|
if (libElement.hasAttribute(attribute))
|
||||||
|
localLibs += libElement.attribute(attribute).arg(apiLevel) + QLatin1Char(':');
|
||||||
libElement = libElement.nextSiblingElement(itemType);
|
libElement = libElement.nextSiblingElement(itemType);
|
||||||
}
|
}
|
||||||
|
|
||||||
libElement = element.firstChildElement(QLatin1String("replaces")).firstChildElement(itemType);
|
libElement = element.firstChildElement(QLatin1String("replaces")).firstChildElement(itemType);
|
||||||
while (!libElement.isNull()) {
|
while (!libElement.isNull()) {
|
||||||
localLibs.replace(libElement.attribute(QLatin1String("file")).arg(apiLevel) + QLatin1Char(':'), QString());
|
if (libElement.hasAttribute(attribute))
|
||||||
|
localLibs.replace(libElement.attribute(attribute).arg(apiLevel) + QLatin1Char(':'), QString());
|
||||||
libElement = libElement.nextSiblingElement(itemType);
|
libElement = libElement.nextSiblingElement(itemType);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -102,6 +102,7 @@ public:
|
|||||||
static Utils::FileName localLibsRulesFilePath(ProjectExplorer::Target *target);
|
static Utils::FileName localLibsRulesFilePath(ProjectExplorer::Target *target);
|
||||||
static QString loadLocalLibs(ProjectExplorer::Target *target, int apiLevel);
|
static QString loadLocalLibs(ProjectExplorer::Target *target, int apiLevel);
|
||||||
static QString loadLocalJars(ProjectExplorer::Target *target, int apiLevel);
|
static QString loadLocalJars(ProjectExplorer::Target *target, int apiLevel);
|
||||||
|
static QString loadLocalJarsInitClasses(ProjectExplorer::Target *target, int apiLevel);
|
||||||
|
|
||||||
static QStringList availableQtLibs(ProjectExplorer::Target *target);
|
static QStringList availableQtLibs(ProjectExplorer::Target *target);
|
||||||
static QStringList qtLibs(ProjectExplorer::Target *target);
|
static QStringList qtLibs(ProjectExplorer::Target *target);
|
||||||
@@ -127,7 +128,7 @@ private:
|
|||||||
Lib,
|
Lib,
|
||||||
Jar
|
Jar
|
||||||
};
|
};
|
||||||
static QString loadLocal(ProjectExplorer::Target *target, int apiLevel, ItemType item);
|
static QString loadLocal(ProjectExplorer::Target *target, int apiLevel, ItemType item, const QString &attribute=QLatin1String("file"));
|
||||||
|
|
||||||
class Library
|
class Library
|
||||||
{
|
{
|
||||||
|
@@ -55,6 +55,7 @@ AndroidRunner::AndroidRunner(QObject *parent, AndroidRunConfiguration *runConfig
|
|||||||
if ((m_useLocalQtLibs = ds->useLocalQtLibs())) {
|
if ((m_useLocalQtLibs = ds->useLocalQtLibs())) {
|
||||||
m_localLibs = AndroidManager::loadLocalLibs(target, ds->deviceAPILevel());
|
m_localLibs = AndroidManager::loadLocalLibs(target, ds->deviceAPILevel());
|
||||||
m_localJars = AndroidManager::loadLocalJars(target, ds->deviceAPILevel());
|
m_localJars = AndroidManager::loadLocalJars(target, ds->deviceAPILevel());
|
||||||
|
m_localJarsInitClasses = AndroidManager::loadLocalJarsInitClasses(target, ds->deviceAPILevel());
|
||||||
}
|
}
|
||||||
m_intentName = AndroidManager::intentName(target);
|
m_intentName = AndroidManager::intentName(target);
|
||||||
m_packageName = m_intentName.left(m_intentName.indexOf(QLatin1Char('/')));
|
m_packageName = m_intentName.left(m_intentName.indexOf(QLatin1Char('/')));
|
||||||
@@ -198,6 +199,8 @@ void AndroidRunner::asyncStart()
|
|||||||
extraParams += QLatin1String(" -e libs_prefix /data/local/qt/");
|
extraParams += QLatin1String(" -e libs_prefix /data/local/qt/");
|
||||||
extraParams += QLatin1String(" -e load_local_libs ") + m_localLibs;
|
extraParams += QLatin1String(" -e load_local_libs ") + m_localLibs;
|
||||||
extraParams += QLatin1String(" -e load_local_jars ") + m_localJars;
|
extraParams += QLatin1String(" -e load_local_jars ") + m_localJars;
|
||||||
|
if (!m_localJarsInitClasses.isEmpty())
|
||||||
|
extraParams += QLatin1String(" -e static_init_classes ") + m_localJarsInitClasses;
|
||||||
}
|
}
|
||||||
|
|
||||||
extraParams = extraParams.trimmed();
|
extraParams = extraParams.trimmed();
|
||||||
|
@@ -92,6 +92,7 @@ private:
|
|||||||
bool m_useLocalQtLibs;
|
bool m_useLocalQtLibs;
|
||||||
QString m_localLibs;
|
QString m_localLibs;
|
||||||
QString m_localJars;
|
QString m_localJars;
|
||||||
|
QString m_localJarsInitClasses;
|
||||||
QMutex m_mutex;
|
QMutex m_mutex;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user