0
votes

I got a project from a former employee of our company.

It's an Android app written in Delphi XE7, using Android SDK 19 (4.4) and Sqlite3 for a local db on the smartphone.

For the moment we have a working copy on the smartphones, but I can't get it compiled/build on my pc. And we need a new version, because some things needs to change in our company logic.

I always get this fatal error:

 "[DCC Fatal Error] Linker error code: 1 ($00000001)"

Before this fatal error, i have more than hundred other erros, all looking almost the same:

[DCC Error] C:\Users\Public\Documents\Embarcadero\Studio\15.0\PlatformSDKs\android-ndk-r9c\toolchains\arm-linux-androideabi-4.6\prebuilt\windows\bin\arm-linux-androideabi-ld.exe: error: c:\\\\program files (x86)\\\\embarcadero\\\\studio\\\\15.0\\\\lib\\\\Android\\\\Release/libsqlite.a(sqlite3.o): multiple definition of 'sqlite3_aggregate_context'

Only the last 2 words of this errors are always different, so I assume this are all the different classes in sqlite3.

I tried a lot of things, from trying it in Xe7, XE8, XE10, different settings in the SDK Manager, ...

I made new projects and brought the files tp this new project, but I always got this same error.

My SDK Manager Settings are:

SDK:

Base Path: C:\Users\Public\Documents\Embarcadero\Studio\15.0\PlatformSDKs\adt-bundle-windows-x86-20131030\sdk
ZipAlign: C:\Users\Public\Documents\Embarcadero\Studio\15.0\PlatformSDKs\adt-bundle-windows-x86-20131030\sdk\tools\ZipAlign.exe
Android Location: C:\Users\Public\Documents\Embarcadero\Studio\15.0\PlatformSDKs\adt-bundle-windows-x86-20131030\sdk\tools\Android.bat
Adb Location: C:\Users\Public\Documents\Embarcadero\Studio\15.0\PlatformSDKs\adt-bundle-windows-x86-20131030\sdk\platform-tools\Adb.exe
Aapt location: C:\Users\Public\Documents\Embarcadero\Studio\15.0\PlatformSDKs\adt-bundle-windows-x86-20131030\sdk\build-tools\android-4.4\Aapt.exeµ
SDK Api-level locationC:\Users\Public\Documents\Embarcadero\Studio\15.0\PlatformSDKs\adt-bundle-windows-x86-20131030\sdk\platforms\android-19

NDK:

Base Path: C:\Users\Public\Documents\Embarcadero\Studio\15.0\PlatformSDKs\android-ndk-r9c
arm-linux-androideabi-ld.exe location: C:\Users\Public\Documents\Embarcadero\Studio\15.0\PlatformSDKs\android-ndk-r9c\toolchains\arm-linux-androideabi-4.6\prebuilt\windows\bin\arm-linux-androideabi-ld.exe
arm-linux-androideabi-strip.exe location: C:\Users\Public\Documents\Embarcadero\Studio\15.0\PlatformSDKs\android-ndk-r9c\toolchains\arm-linux-androideabi-4.6\prebuilt\windows\bin\arm-linux-androideabi-strip.exe
gdbserver location: C:\Users\Public\Documents\Embarcadero\Studio\15.0\PlatformSDKs\android-ndk-r9c\prebuilt\android-arm\gdbserver\gdbserver
NDK Api Location: C:\Users\Public\Documents\Embarcadero\Studio\15.0\PlatformSDKs\android-ndk-r9c\platforms\android-14
C:\Users\Public\Documents\Embarcadero\Studio\15.0\PlatformSDKs\android-ndk-r9c\platforms\android-14\arch-arm\usr\lib
Delphi NDK Library Path: C:\Users\Public\Documents\Embarcadero\Studio\15.0\PlatformSDKs\android-ndk-r9c\platforms\android-14\arch-arm\usr\lib;C:\Users\Public\Documents\Embarcadero\Studio\15.0\PlatformSDKs\android-ndk-r9c\sources\cxx-stl\gnu-libstdc++\4.8\libs\armeabi-v7a

Java:

KeyTool Location: C:\Program Files\Java\jdk1.7.0_25\bin\KeyTool.exe
Jarsigner Location: C:\Program Files\Java\jdk1.7.0_25\bin\JarSigner.exe

Can anyone give me a clue or a possible solution.

Thx in advance Timothy

1
If you block all SQLite code, (mocking it to give all fixed answers), and remove all traces of SQLite - it compiles? (I'm not caring if it WORKS, just if compiles). Another question: you can do create SQLite code in little projects ?Fabricio Araujo
@FabricioAraujo Thx for your input. I tried both. First I started with my application. I removed everything that was sql'lish.. The last thing that I removed was the SQLiteUniProvider. From the moment I did this, the error message disappeared while compiling/building. Then I saved it and started to put things back in. From the moment the Provider got back in, troubles came back... I also made a very small application to test the Sqlite and this worked like a charm.. Do you have any other ideas to search on this?TimoGull

1 Answers

1
votes

I found the solution:

problem was that is used a SqliteUniProvider and in an other file there was still a dbxsqlite in the uses clause.

From the moment I commented the second one (dbxsqlite) out, the linking error dissapeared while compiling/building.