0

如何在发布模式下测试应用程序?我试过ant release test了,但它给出了这个错误

test:
 [echo] Running tests ...
 [exec] INSTRUMENTATION_STATUS: id=ActivityManagerService
 [exec] INSTRUMENTATION_STATUS: Error=Unable to find instrumentation info for: ComponentInfo{com.kizbit.speedyreader.tests/android.test.InstrumentationTestRunner}
 [exec] INSTRUMENTATION_STATUS_CODE: -1
 [exec] android.util.AndroidException: INSTRUMENTATION_FAILED: com.kizbit.speedyreader.tests/android.test.InstrumentationTestRunner

我已经将密钥库复制到了测试项目。

我想在发布模式下进行测试,因为它可以节省很多状态。如果我在调试模式下重新安装,那么我必须卸载并重新安装它,这会删除所有状态。

4

1 回答 1

1

好的,我找到了方法。请务必检查测试包的 AndroidManifest.xml 中的包名称和测试类的路径。由于某种原因,清单中的包名称是 com....tests,而类不在 /tests 目录中。我不知道它是如何工作的,但它曾经用于正常调试。

要让它在发布模式下进行测试,您必须使用ant release install test. 我忘记安装了。此外,test将始终构建您的应用程序的调试版本,因此您必须手动转到真正的应用程序项目目录,然后运行ant release install,这将安装发布版本。然后,转到测试项目目录并运行ant release install test. 这将给出一个错误

Failure [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES]

当它尝试安装实际应用程序时,因为它已经使用发布密钥安装。你可以忽略这个。此外,您必须删除测试项目的调试版本,adb uninstall com........tests以确保在尝试安装测试的发布版本时它不会出现此错误。

此外,您必须将实际项目目录中的 release.keystore 文件复制到测试项目目录中,如果您将密钥保存在 ant.properties 中,您还必须将这些条目复制到测试 ant.properties 中

key.store=release.keystore
key.alias=mykey
key.store.password=password
key.alias.password=password

然后它将使用发布版本进行测试!

请记住,由于它不会安装实际的应用程序,因此如果您要更改内容,则必须从应用程序目录手动重新编译并重新安装发布版本。也许有一种方法可以通过修改 build.xml 来自动构建和安装发布版本,但我还没有检查过。

于 2012-10-07T21:53:23.667 回答