This is a most baffling error as it occurs during linking code for the Android target which ran flawlessly for the Win32 target. What happens is that the Android linker reports that some symbols were not found in the C++ code which was compiled from object Pascal. The code is clearly present in the Pascal code. Commenting out the code leads to another error in another part of the code. The linker is clearly bent upon your destruction. Or so it seems. The Embarcadero help is not the most useful in the world.
There are several ways to get out of this situation.
Remove all object files. These can be found in <path to="" your="" application="" code="">\Android\Debug (or release). Remove all files, except directories. Usually this works.</path>
Inspect very carefully your function definitions and calls and make sure you use the exact types. In one case the error seems to be caused because the header contained and integer while the function was called with a uInt32.
Have the compiler emitting RTTI information. Go to Project | Compiling | Emit runtime type information. When you get lots of E2217 compiler errors make sure that your class does not use published as an access specifier for that field but use another one like private, protected or public.
-
not this but this
TMandel_View = class (TObject) TMandel_View = class (TObject)
FStop_Watch: TStopWatch; private // all is ok except published
FStop_Watch: TStopWatch;