我必須在Xamarin UI Test框架上撰寫幾個測驗來檢查模擬器上的 apk。我嘗試以兩種方式安裝我的apk:
1 adb.exe 安裝path\com.company.mobiledemo.apk
2通過Xamarin UI Test
if (platform == Platform.Android)
{
AndroidApp app = ConfigureApp.Android
.ApkFile("path\\com.company.mobiledemo.apk")
.Debug()
.EnableLocalScreenshots()
.DeviceSerial("emulator-5554")
.StartApp();
return app;
}
在第一種方法中,apk 已安裝并正常作業。但是,當通過上面的代碼安裝 apk 時,apk 將被安裝但不會啟動,只是在閃屏后停止。

我不知道為什么,因為兩者都使用相同的 apk 檔案。
NUnit: 3.13.3
NUnit3TestAdapter: 4.2.1
Xamarin.UITest: 2.2.6
Emulator OS: Android 6.0 Api 23
uj5u.com熱心網友回復:
好的,我找到了解決方案。這有點困惑,也許有一個更簡單的解決方法。據我了解,問題是您的 apk 和 Instrumentation 后端 apk 必須簽署相同的證書。
我的步驟:
我通過 adb 命令安裝了 apk:
>adb.exe install ~\..\com.company.mobiledemo.apk然后改成
AppInitializer.cs這樣:if (platform == Platform.Android) { string keystore = "~\\..\\..\\some.keystore"; AndroidAppConfigurator appConfigurator = ConfigureApp.Android .KeyStore( keystore, "storePassword", "keyPassword", "\"keyAlias\"" ) .InstalledApp("com.company.mobiledemo.apk") .Debug() .EnableLocalScreenshots(); AndroidApp app = appConfigurator.StartApp(AppDataMode.Clear); return app; }然后嘗試啟動測驗并得到錯誤:
System.Exception : Failed to execute: C:\Program Files\Android\jdk\microsoft_dist_openjdk_1.8.0.25\bin\jarsigner.exe -sigalg SHA1withRSA -digestalg SHA1 -signedjar "C:\Users\{user}\AppData\Local\Temp\uitest\a-287A943C412ED6ED5DEB1675E7FDF91843FD0807\20344\SignedTestServer.apk" -storepass bla-bla -keypass bla-bla -keystore "~..\Mobile\Mobile.Android\Certificate\some.keystore" "C:\Users\{user}\AppData\Local\Temp\uitest\a-287A943C412ED6ED5DEB1675E7FDF91843FD0807\TestServer.apk" ""Key Alias"" - exit code: 1
Please type jarsigner -help for usage
Only one alias can be specified
沒關系。
- 從錯誤訊息中打開檔案夾:
C:\Users{用戶}\AppData\Local\Temp\uitest\
你會看到這樣的東西:

- 全部洗掉并再次運行測驗。啟動后會出現新的測驗資料:

從上面的錯誤訊息中復制命令,轉到
C:\Program Files\Android\jdk\microsoft_dist_openjdk_1.8.0.25\bin或所在的目錄jarsigner.exe之后執行命令
System.Exception : Failed to execute:

- 找到
SignedTestServer.apk并復制到檔案夾 containsdummy.apk

- 再次運行測驗并看到
FinalTestServer.apk出現

PSC:\Users\{user}\AppData\Local\Temp\uitest在 9 之前關閉檔案夾。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/480366.html
