1

我有 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 文件是否完整或缺少某些命令行?

4

2 回答 2

0

单击运行|参数...

放入-cleaninstall参数框中。

如果您的设备上有旧版本的 APK(比如 XE5),请卸载它。

如果您正在编译发布版本,请确保您在项目|选项...|配置中定义了证书。

于 2014-07-06T15:36:02.683 回答
0

如果从另一台计算机复制密钥库文件,则可能会发生此问题。如果是这种情况,请先尝试卸载 apk,或在新机器上重新创建密钥库文件。

于 2014-08-31T11:50:04.320 回答