Page 1 of 2

Android problem

Posted: Mon Dec 09, 2013 12:25 pm
by Malcolm
Hi

I just tried to add TsiLang to my small, working Android project (FMX).
But when I try to build or compile I get errors about missing .dcu and .o files.

I see that my design packages include TsiLang Component Suite (VCL Edition) and there are no runtime packages for TsiLang.

Does this mean that I have missed something from my installation (7.1) or is TsiLang not available for FMX projects?

Malcolm

Posted: Wed Dec 11, 2013 2:17 pm
by isiticov
FMX compiled units are installed under specific sub-folder which is not added to Library path automatically. So you just need to add this sub-folder to your project's library settings. Android units are installed under "Android" sub-folder.

Posted: Thu Dec 12, 2013 10:22 pm
by Malcolm
OK, by adding the TsiLang\Units\ERS XE5\Android folder, the compiler finds the four .dcu files.

But now it can't find the *.o files, and they are nowhere on my computer.
So how do I create them?

Posted: Fri Dec 13, 2013 2:43 pm
by isiticov
Both DCUs and Os files were installed into this folder. May be you've deleted them? Try to re-install in case they were deleted.

Posted: Fri Dec 13, 2013 4:17 pm
by Malcolm
That did not help. Very strange. :cry:

I uninstalled including Reg entries. That removed all but my .dic file

I ran the 7_1 setup as Administrator
I selected only the RAD Studio XE5 IDE plus the SIL Editor, Dictionary, Help and Wizards.

After the install the Units\ERS XE5\ folders for Android, iOS and OSX32 contain only the 4 .DCU files

No sign of any Android .o files.

Posted: Sat Dec 14, 2013 9:04 am
by Malcolm
To add to the above, I installed only Delphi, not the C++

Posted: Tue Dec 17, 2013 8:34 am
by isiticov
Sorry for this. You was right. The Full Source install script didn't include the .o files. We've fixed the script. You can download the .o files from http://www.sicomponents.com/tmp/Android.zip

Posted: Tue Dec 17, 2013 7:19 pm
by Malcolm
Hi

I confirm that the install script now includes the .o files, thanks.

However, I now get build errors such as shown below. Note the references to "F:\Auxiliary/....... I am not sure where this path comes from.

[DCC Error] E2597 C:\Users\Public\Documents\RAD Studio\12.0\PlatformSDKs\android-ndk-r8e\toolchains\arm-linux-androideabi-4.6\prebuilt\windows\bin\arm-linux-androideabi-ld.exe: C:\Program Files\SiComponents\TsiLang\Units\ERS XE5\Android\siConsts.o: in function System::Generics::Collections::TEnumerable__1<System::DelphiObject<System::Classes::TComponent> >::ToArray():F:\Auxilary/siConsts.pas:2280: error: undefined reference to 'System::_InstCopy(System::DelphiObject<System::TObject>&, System::DelphiObject<System::TObject>)'

..followed by a lot of similar errors..

Is that me? Or where does the "F:\Auxiliary come from?

Malcolm

Posted: Wed Dec 18, 2013 1:26 pm
by isiticov
I'm not sure how Android compiler produces .o files but I can see F:\Auxilary reference in siConsts.o file. Actually "F:\Auxilary" is a path on our build station so may be the compiler uses some paths in .o file. But this is quite strange.
BUT as you have Full Source Edition you can easily re-build your project using TsiLang sources and produce compiled project on your side. Just be sure to define FMX in your Android project that uses TsiLang and add path to sources to project's options.
Please let me know if this helped.

Posted: Wed Dec 18, 2013 2:18 pm
by Malcolm
Hi Igor

I suspected that it might be some path from your system.
Re-compiling is outside my comfort zone, so I will abandon the translation for now.

My project is in alpha now, so I can leave the translation until later. Hopefully these glitches will have been resolved by then in some update.

Malcolm

Posted: Mon Jan 20, 2014 5:00 pm
by Brov84
Hi,

i have the same problem ([DCC Error] E2597 C:\Users\Public\Documents\RAD Studio\12.0\PlatformSDKs\android-ndk-r8e\toolchains\arm-linux-androideabi-4.6\prebuilt\windows\bin\arm-linux-androideabi-ld.exe: C:\Program Files\SiComponents\TsiLang\Units\ERS XE5\Android\siConsts.o: in function System::Generics::Collections::TEnumerable__1<System::DelphiObject<System::Classes::TComponent> >::ToArray():F:\Auxilary/siConsts.pas:2280: error: undefined reference to 'System::_InstCopy(System::DelphiObject<System::TObject>&, System::DelphiObject<System::TObject>)' ) with the Full Source component version.

How can i fix it?

Posted: Wed Jan 22, 2014 4:39 pm
by isiticov
Re-building sources fixed the problem.

Posted: Fri Jan 24, 2014 2:04 pm
by Dimitris Nomikos
Hello,

i'm having the same problem as the people above...

isiticov can you tell us some steps on how to do that? Tried cleaning my project and rebuild again but i got the same error.

Posted: Mon Jan 27, 2014 11:14 am
by isiticov
Hello,

1. Add path to TsiLang units folder and Auxiliary sub-folder to your project's library path settings.
2. Add FMX conditional define to your project's options.
3. Re-build of your project.

Posted: Mon Jan 27, 2014 11:49 am
by Dimitris Nomikos
In Tool, Options, Library, Android Platform, Library Path: i added C:\Program Files\SiComponents\TsiLang\Units\ERS XE5\Android

and on the Main Unit of the project i have siComp on my uses section. I still get the linker error.

Which folder do you mean as 'Auxiliary sub-folder'? Is this the only thing i am missing?