On 04/07/2016 05:15 PM, Lorne Sturtevant wrote: > I have a project that I'm trying to get working on android. I'm > using Qt Creator to build and run everything. The program compiles, > links and deploys. When it runs, I get the following error: > > Starting remote process.V/Zygote (20264): Switching descriptor 33 to > /dev/null > > V/Zygote (20264): Switching descriptor 9 to /dev/null > > D/dalvikvm(20264): Late-enabling CheckJNI > > I/ActivityManager( 436): Start proc org.qtproject.example.test_mage > for activity > org.qtproject.example.test_mage/org.qtproject.qt5.android.bindings.QtActivity: > pid=20264 uid=10109 gids={50109, 3003, 1028, 1015} > > D/ActivityThread(20264): > handleBindApplication:org.qtproject.example.test_mage > > D/ActivityThread(20264): setTargetHeapUtilization:0.75 > > D/ActivityThread(20264): setTargetHeapMinFree:524288 > > D/dalvikvm(20264): Trying to load lib > /data/data/org.qtproject.example.test_mage/lib/libgnustl_shared.so > 0x2c665238 > > D/dalvikvm(20264): Added shared lib > /data/data/org.qtproject.example.test_mage/lib/libgnustl_shared.so > 0x2c665238 > > D/dalvikvm(20264): No JNI_OnLoad found in > /data/data/org.qtproject.example.test_mage/lib/libgnustl_shared.so > 0x2c665238, skipping init > > D/dalvikvm(20264): Trying to load lib > /data/data/org.qtproject.example.test_mage/lib/libQt5Core.so 0x2c665238 > > D/dalvikvm(20264): Added shared lib > /data/data/org.qtproject.example.test_mage/lib/libQt5Core.so 0x2c665238 > > D/dalvikvm(20264): Trying to load lib > /data/data/org.qtproject.example.test_mage/lib/libQt5Gui.so 0x2c665238 > > D/dalvikvm(20264): Added shared lib > /data/data/org.qtproject.example.test_mage/lib/libQt5Gui.so 0x2c665238 > > D/dalvikvm(20264): No JNI_OnLoad found in > /data/data/org.qtproject.example.test_mage/lib/libQt5Gui.so > 0x2c665238, skipping init > > D/dalvikvm(20264): Trying to load lib > /data/data/org.qtproject.example.test_mage/lib/libQt5Widgets.so 0x2c665238 > > D/dalvikvm(20264): Added shared lib > /data/data/org.qtproject.example.test_mage/lib/libQt5Widgets.so 0x2c665238 > > D/dalvikvm(20264): No JNI_OnLoad found in > /data/data/org.qtproject.example.test_mage/lib/libQt5Widgets.so > 0x2c665238, skipping init > > D/dalvikvm(20264): Trying to load lib > /data/data/org.qtproject.example.test_mage/lib/libQt5Xml.so 0x2c665238 > > D/dalvikvm(20264): Added shared lib > /data/data/org.qtproject.example.test_mage/lib/libQt5Xml.so 0x2c665238 > > D/dalvikvm(20264): No JNI_OnLoad found in > /data/data/org.qtproject.example.test_mage/lib/libQt5Xml.so > 0x2c665238, skipping init > > D/dalvikvm(20264): Trying to load lib > /data/data/org.qtproject.example.test_mage/lib/libQt5Concurrent.so > 0x2c665238 > > D/dalvikvm(20264): Added shared lib > /data/data/org.qtproject.example.test_mage/lib/libQt5Concurrent.so > 0x2c665238 > > D/dalvikvm(20264): No JNI_OnLoad found in > /data/data/org.qtproject.example.test_mage/lib/libQt5Concurrent.so > 0x2c665238, skipping init > > D/dalvikvm(20264): Trying to load lib > /data/data/org.qtproject.example.test_mage/lib/libQt5Network.so 0x2c665238 > > D/dalvikvm(20264): Added shared lib > /data/data/org.qtproject.example.test_mage/lib/libQt5Network.so 0x2c665238 > > D/dalvikvm(20264): No JNI_OnLoad found in > /data/data/org.qtproject.example.test_mage/lib/libQt5Network.so > 0x2c665238, skipping init > > D/dalvikvm(20264): Trying to load lib > /data/data/org.qtproject.example.test_mage/qt-reserved-files/plugins/platforms/android/libqtforandroid.so > 0x2c665238 > > D/dalvikvm(20264): Added shared lib > /data/data/org.qtproject.example.test_mage/qt-reserved-files/plugins/platforms/android/libqtforandroid.so > 0x2c665238 > > I/Qt (20264): qt start > > D/dalvikvm(20264): Trying to load lib > /data/data/org.qtproject.example.test_mage/qt-reserved-files/plugins/bearer/libqandroidbearer.so > 0x2c665238 > > D/dalvikvm(20264): Added shared lib > /data/data/org.qtproject.example.test_mage/qt-reserved-files/plugins/bearer/libqandroidbearer.so > 0x2c665238 > > D/dalvikvm(20264): No JNI_OnLoad found in > /data/data/org.qtproject.example.test_mage/qt-reserved-files/plugins/bearer/libqandroidbearer.so > 0x2c665238, skipping init > > D/dalvikvm(20264): Trying to load lib > /data/app-lib/org.qtproject.example.test_mage-2/libphysfs.so 0x2c665238 > > D/dalvikvm(20264): Added shared lib > /data/app-lib/org.qtproject.example.test_mage-2/libphysfs.so 0x2c665238 > > D/dalvikvm(20264): No JNI_OnLoad found in > /data/app-lib/org.qtproject.example.test_mage-2/libphysfs.so > 0x2c665238, skipping init > > D/dalvikvm(20264): Trying to load lib > /data/app-lib/org.qtproject.example.test_mage-2/libmage.so 0x2c665238 > > E/dalvikvm(20264): > dlopen("/data/app-lib/org.qtproject.example.test_mage-2/libmage.so") > failed: dlopen failed: cannot locate symbol > "_ZN18QXmlDefaultHandlerC2Ev" referenced by "libmage.so"... > > The constructor for QXmlDefaultHandler is not found. It looks like > it's loading the libQt5Xml.so library fine though. When I examine the > library in the build directory, this is what I get: > $ objdump -T libQt5Xml.so | grep _ZN18QXmlDefaultHandlerC2Ev > 000121b9 g DF .text 00000038 _ZN18QXmlDefaultHandlerC2Ev > > The symbol is in the library, but I have no idea why it's not finding it. > > Any help with this would be greatly appreciated. I figured out what the problem was. I'm just replying to this in case anyone else comes across this problem.
It seems the linker acted a little different on Android compared to all the other platforms I used. When linking libmage.so, I had to add "-lQt5Xml -lgnustl_shared" to the command line. I actually had to add all of the Qt libraries that libmage.so used, but Qt5Xml is what specifically fixed the error finding the symbol _ZN18QXmlDefaultHandlerC2Ev. I should also note that I am using autotools to create libmage.so and not QtCreator. I'm sure QtCreator would have setup the linking for me without this problem. -- Lorne Sturtevant Sum Ergo Cogito
_______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest