我從我們公司的前僱員那裏得到了一個項目。鏈接錯誤編譯/構建Delphi XE7和XE10 Android應用程序(SQLITE3)
這是一個用Delphi XE7編寫的Android應用程序,使用Android SDK 19(4.4)和Sqlite3作爲智能手機上的本地數據庫。
目前我們在智能手機上有一個工作副本,但我無法在我的電腦上編譯/構建它。我們需要一個新版本,因爲我們的公司邏輯中有些事情需要改變。
我總是得到這種致命的錯誤:
"[DCC Fatal Error] Linker error code: 1 ($00000001)"
這個致命的錯誤之前,我還有其他的百元以上的誤差修改,都在尋找幾乎相同:
[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'
只有最後2個字這個錯誤總是不同的,所以我認爲這是sqlite3中所有不同的類。
我嘗試了很多東西,從XE7,XE8,XE10,在SDK管理器不同的設置,嘗試它...
我取得了新的項目,並帶來了TP文件,這個新的項目,但我總是得到這個相同的錯誤。
我的SDK管理器設置爲:
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
任何人都可以給我一個線索或可能的解決方案。提前蒂莫西
如果你阻止所有的SQLite代碼,(嘲笑它給出所有固定的答案),並刪除SQLite的所有痕跡 - 它編譯? (我不關心它是否有效,只要編譯)。 另一個問題:你可以在小項目中創建SQLite代碼嗎? –
@FabricioAraujo Thx供您參考。我嘗試了兩個。首先,我從我的應用程序開始。我刪除了sql'lish的所有內容。我刪除的最後一件事是SQLiteUniProvider。從我執行此操作的那一刻起,錯誤消息在編譯/構建時消失。然後我將它保存起來,並開始重新裝入。從提供程序恢復運行的那一刻起,問題又回來了......我還製作了一個非常小的應用程序來測試Sqlite,並且它像魅力一樣工作。您是否有任何其他想法來搜索這個? – TimoGull