Hi
Finally I managed to create working apk for x86 only. Everything works fine.
But build for armeabi-v7a failed. I did not changed anything comparing to x86 build.
Detailed output:
C:/Users/selec/Documents/Projects/CocosPrj/exogame/proj.android/app/jni/Classes/svgdom/elements/ImageElement.hpp:0: error: undefined reference to 'vtable for svgdom::ImageElement'
C:/Users/selec/AppData/Local/Android/Sdk/ndk-bundle/build//../toolchains/llvm/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin\ld: the vtable symbol may be undefined because the class is missing its key function
C:/Users/selec/Documents/Projects/CocosPrj/exogame/proj.android/app/jni/Classes/svgdom/Parser.cpp:232: error: undefined reference to 'svgdom::Transformable::parse(std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&)'
C:/Users/selec/Documents/Projects/CocosPrj/exogame/proj.android/app/jni/Classes/svgdom/Parser.cpp:299: error: undefined reference to 'svgdom::Transformable::parse(std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&)'
C:/Users/selec/Documents/Projects/CocosPrj/exogame/proj.android/app/jni/Classes/svgdom/Parser.cpp:315: error: undefined reference to 'svgdom::AspectRatioed::parseAndFillPreserveAspectRatio(std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&)'
C:/Users/selec/Documents/Projects/CocosPrj/exogame/proj.android/app/jni/Classes/svgdom/elements/ImageElement.hpp:0: error: undefined reference to 'vtable for svgdom::ImageElement'
C:/Users/selec/AppData/Local/Android/Sdk/ndk-bundle/build//../toolchains/llvm/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin\ld: the vtable symbol may be undefined because the class is missing its key function
C:/Users/selec/Documents/Projects/CocosPrj/exogame/proj.android/app/jni/Classes/svgdom/StreamWriter.cpp:82: error: undefined reference to 'svgdom::Transformable::transformationsToString() const'
C:/Users/selec/Documents/Projects/CocosPrj/exogame/proj.android/app/jni/Classes/svgdom/StreamWriter.cpp:100: error: undefined reference to 'svgdom::AspectRatioed::preserveAspectRatioToString() const'
C:/Users/selec/Documents/Projects/CocosPrj/exogame/proj.android/app/jni/Classes/svgdom/StreamWriter.cpp:142: error: undefined reference to 'svgdom::Transformable::transformationsToString() const'
clang++.exe: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [C:/Users/selec/Documents/Projects/CocosPrj/exogame/proj.android/app/build/intermediates/ndkBuild/debug/obj/local/armeabi-v7a/libMyGame.so] Error 1
In the upper messages it could be noticed:
- "undefined reference to ‘vtable for svgdom::ImageElement’ "
- " the vtable symbol may be undefined because the class is missing its key function"
So, I suppose the problem might be multiple inheritance here in ImageElement.hxx file:
#pragma once
#include "Element.hpp"
#include "Styleable.hpp"
#include "Transformable.hpp"
#include "Rectangle.hpp"
#include "Referencing.hpp"
#include "AspectRatioed.hpp"
namespace svgdom {
struct ImageElement :
public Element,
public Styleable,
public Transformable,
public Rectangle,
public Referencing,
public AspectRatioed
{
void accept(Visitor& visitor) override;
void accept(ConstVisitor& visitor) const override;
};
}
Is there any additional steps to take in order to build my project for armeabi-v7a?