Delphi编译Android服务类应用System.Android.ServiceApplication时JDK路径的处理

Delphi编译Android服务类应用System.Android.ServiceApplication时JDK路径的处理

        当新建和编译Android服务类应用System.Android.ServiceApplication时,无论你在IDE中如何设置JDK相关的路径,编译器都会默认使用其自身设置的JDK的$config所指示的JDK版本并指向其路径,导致编译不过:

检查环境变量无误:

检查SDK Manager配置路径无误:

 java:

KeyTool location:D:\***\AndroidSDK\Java\jdk1.8.0_60\bin\keytool.exe

Jarsigner location:D:\***\AndroidSDK\Java\jdk1.8.0_60\bin\jarsigner.exe

NDK:

NDK base path:D:***\AndroidSDK\android-ndk-r10e

arm-inux-androideabi-id.exe location:D:\***\AndroidSDK\android-ndk-r10e\toolchains\arm-linux-androideabi-4.9\prebuilt\windows-x86_64\bin\arm-linux-androideabi-ld.exe

arm-inux-androideabi-strip.exe location:D:\***\AndroidSDK\android-ndk-r10e\toolchains\arm-linux-androideabi-4.9\prebuilt\windows-x86_64\bin\arm-linux-androideabi-strip.exe

gdbserver location:{Interbase本地数据库服务器配置文件gdbserver }:D:\***\AndroidSDK\android-ndk-r10e\prebuilt\android-arm\gdbserver\gdbserver  

NDK API location:D:\***\AndroidSDK\android-ndk-r10e\platforms\android-14

Delphi NDK Library path:D:\***\AndroidSDK\android-ndk-r10e\platforms\android-14\arch-arm\usr\lib;D:\***\AndroidSDK\android-ndk-r10e\sources\cxx-stl\gnu-libstdc++\4.8\libs\armeabi-v7a

SDK:

SDK base path:D:\***\AndroidSDK\android-sdk-windows

ZipAlign location:D:\***\AndroidSDK\android-sdk-windows\build-tools\28.0.2\zipalign.exe

Android location:D:\***\AndroidSDK\android-sdk-windows\tools\Android.bat

Adb location:D:\***\AndroidSDK\android-sdk-windows\platform-tools\Adb.exe

Adatp location:D:\***\AndroidSDK\android-sdk-windows\build-tools\28.0.2\Aapt.exe

SDK API-Level location:D:\***\AndroidSDK\android-sdk-windows\platforms\android-26\

但:无论你在IDE中如何设置JDK相关的路径,编译器都会默认使用其自身设置的JDK的$config所指示的JDK版本并指向其路径,导致编译不过:

在dos批处理下执行错误提示中内含的指令:

"D:\PulledupO2O\AndroidSDK\Java\jdk1.8.0_60\bin\javac" -d "C:\Users\Public\Documents\Embarcadero\Studio\20.0\Samples\Object Pascal\Multi-Device Samples\Device Sensors and Services\AndroidNotificationServiceDemo\NotificationService\JavaClasses\NotificationService" -Xlint:deprecation -classpath "D:\PulledupO2O\AndroidSDK\android-sdk-windows\platforms\android-26\android.jar";"c:\program files (x86)\embarcadero\studio\20.0\lib\Android\Debug\android-support-v4.jar";"c:\program files (x86)\embarcadero\studio\20.0\lib\Android\Debug\fmx.jar" -bootclasspath "D:\PulledupO2O\AndroidSDK\android-sdk-windows\platforms\android-26\android.jar" -encoding UTF-8 -target 1.6 -g -source 1.6  .\Android\Debug\NotificationService.java .\Android\Debug\NotificationServiceProxyInterface.java"

提示:系统找不到D:\***\AndroidSDK\Java\jdk1.8.0_60\bin\javac.exe

最终解决方案:

复制粘贴此文件夹:D:\**\AndroidSDK\Java\jdk1.8.0_60 ,把复制后的文件夹改名为:D:\***\AndroidSDK\Java\jdk1.8.0_102,编译器识别通过!