我有Embarcadero XE6,但只使用Delphi XE6。 当我运行我的应用程序Delphi项目时,它正确编译,但当Delphi尝试直接在设备SDK ADV或物理设备上安装此应用程序时,会发生以下错误:
无法创建流程:无法安装''。失败[INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES]
所以我创建了一个批处理文件,以便我的应用程序保留证书,只有这样才能 在移动设备上手动安装。
批处理文件包含:
cd\
D:
cd Program Files
cd Java
cd jdk1.7.0_25
cd bin
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore -storepass android D:\DelphiPrograms\App01\Android\Debug\MyApp\bin\MyApp.apk androiddebugkey
cd\
D:
cd Users
cd Public
cd Documents
cd Embarcadero
cd Studio
cd 14.0
cd PlatformSDKs
cd adt-bundle-windows-x86-20131030
cd sdk
cd platform-tools
adb -s emulator-5554 install -r D:\DelphiPrograms\App01\Android\Debug\MyApp\bin\MyApp.apk
pause
但是每当更改应用程序时,我都必须运行此批处理文件,我看到它不需要这个。 Delphi会自动将应用程序安装到设备中。
注意:当我安装Embarcadero XE6时,ZipAlign.exe文件没有退出,而zipalign.bat为空,所以我从互联网上复制了ZipAlign.exe,并从互联网上复制了批处理文件命令。
我的文件ZipAllign.bat包含以下命令行:
@echo off
REM Batch file to recursively zip align *.apk files in a directory
REM and its sub-directories. This is significantly easier and faster
REM than manually zip aligning them.
@echo Zip aligning now...
for /R %%X in (*.apk) do zipalign 4 "%%X" "%%~dpX%%~nX.new"
@echo Replacing non-aligned files with zip aligned files...
for /R %%X in (*.new) do move /Y "%%X" "%%~dpX%%~nX.apk"
@echo Zip aligning done, press any key to exit
pause
但错误仍然存在,并且无法直接在Delphi中为SDK设备运行应用程序,而无需运行我为我的应用程序创建的批处理文件进行认证。
ZipAllign.bat文件是完整的还是缺少某些命令行?
答案 0 :(得分:0)
单击“运行”|“参数...”
将-cleaninstall
放在参数框中。
如果你在设备上有旧版本的APK(来自XE5),请将其卸载。
如果您正在编译发行版,请确保您在项目|选项... |供应中定义了证书。
答案 1 :(得分:0)
如果从其他计算机复制密钥库文件,则可能会发生此问题。如果是这种情况,请先尝试卸载apk,或者在新计算机上重新创建密钥库文件。