LINUX.ORG.RU

создание подключаемых библиотек для проекта под android в qt

 ,


0

1

Всем привет, вот файлы библиотеки

.pro файл

#-------------------------------------------------
#
# Project created by QtCreator 2015-03-29T23:59:10
#
#-------------------------------------------------

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = testlib
TEMPLATE = lib


SOURCES += \
    testlib.cpp

HEADERS  += \
    testlib.h

FORMS    +=

CONFIG += mobility
MOBILITY = 

testlib.h

#ifndef TESTLIB
#define TESTLIB

int func();

#endif // TESTLIB

testlib.cpp

#include "testlib.h"

int func()
{
    return 5;
}

если целью для сборки выбрать андроид x86 то он будет писать что файл .pro не найден: Внутренняя ошибка: файл .pro не найден. Ошибка при сборке/установке проекта testlib (комплект: Android для x86 (GCC 4.9, Qt 5.4.1) ) Во время выполнения этапа «Сборка Android APK»

если в .pro заменить lib на app то он всё соберёт и в итоге будет файл с расширением libtestlib.so

тестовый проект:

файл .pro

#-------------------------------------------------
#
# Project created by QtCreator 2015-03-30T00:03:52
#
#-------------------------------------------------

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = testproject
TEMPLATE = app


SOURCES += main.cpp

HEADERS  += \
    testlib.h

CONFIG += mobility
MOBILITY = 

DISTFILES +=

win32:CONFIG(release, debug|release): LIBS += -L$$PWD/release/ -ltestlib
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/debug/ -ltestlib
else:unix: LIBS += -L$$PWD/ -ltestlib

INCLUDEPATH += $$PWD/
DEPENDPATH += $$PWD/

main.cpp

#include <QApplication>
#include "testlib.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();

    return a.exec();
}

Так вот. Если тестовый проект собрать под андроид x86 то всё будет нормально, никаких ошибок во время сборки, но если попытаться запустить его через qt в эмуляторе то будет следующее: dlopen(«/data/app/org.qtproject.example.testproject-1/lib/x86/libtestproject.so», RTLD_LAZY) failed: dlopen failed: could not load library «libtestlib.so» needed by «libtestproject.so»; caused by library «libtestlib.so» not found D/AndroidRuntime( 2205): Shutting down VM E/AndroidRuntime( 2205): FATAL EXCEPTION: main E/AndroidRuntime( 2205): Process: org.qtproject.example.testproject, PID: 2205 E/AndroidRuntime( 2205): java.lang.UnsatisfiedLinkError: dlopen failed: could not load library «libtestlib.so» needed by «libtestproject.so»; caused by library «libtestlib.so» not found

Объясните пожалуйста как собирать либы для андроида.


Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.