簡體   English   中英

INSTALL_FAILED_INVALID_APK AndroidSigning@3

[英]INSTALL_FAILED_INVALID_APK AndroidSigning@3

我正在嘗試從 azure devops 管道創建一個 apk,並且該 apk 成功生成。 但是當我嘗試將生成的apk安裝到模擬器中時,我收到了這個錯誤

Failed to commit install session 762751184 with command cmd package install-commit 762751184. Error: INSTALL_FAILED_INVALID_APK: Failed to extract native libraries, res=-2

當我試圖將它安裝在我得到的設備中時,

App not installed as package appears to be invalid

這是管道代碼,

steps:
  - task: android-manifest-version@1
    inputs:
      sourcePath: 'android/app/src/main/AndroidManifest.xml'
      versionCodeOption: 'buildid'
      versionCode: '$(Build.BuildId)'
      versionName: 
      printFile: true
  - task: Hey24sheep.flutter.flutter-build.FlutterBuild@0
    displayName: Build ${{ parameters.appSuffix }} App Bundle
    inputs:
      target: 'apk'
      projectDirectory: '$(Build.SourcesDirectory)'
      buildFlavour: '${{ parameters.appSuffix }}'
      entryPoint: ${{ parameters.flavorEntryPoint }}
  - task: DownloadSecureFile@1
    name: keystore
    displayName: Download keystore securely
    inputs:
      secureFile: ${{ parameters.keyStoreFile }}
  - task: AndroidSigning@3
    displayName: 'Signing and aligning APK file(s) **/*.apk'
    inputs:
      apkFiles: '**/*.apk'
      zipalign: true
      apksign: true
      apksignerKeystoreFile: ${{ parameters.keyStoreFile }}
      apksignerKeystorePassword: ${{ parameters.keyStorePassword }}
      apksignerKeystoreAlias: ${{ parameters.keyAlias }}
      apksignerKeyPassword: ${{ parameters.keyPassword }}
  - task: CopyFiles@2
    displayName: 'Copy Files to: $(build.artifactstagingdirectory)'
    inputs:
      SourceFolder: '$(system.defaultworkingdirectory)'
      Contents: '**/*.apk'
      TargetFolder: '$(build.artifactstagingdirectory)'
      FlattenFolders: true
    condition: succeededOrFailed()
  - task: PublishBuildArtifacts@1
    displayName: 'Publish Artifact: drop'
    inputs:
      PathtoPublish: '$(build.artifactstagingdirectory)'

但是當我添加

android:extractNativeLibs="true"

到我的 android 清單然后應用程序安裝沒有任何問題(在模擬器和設備中)。 但是我想保留 android:extractNativeLibs=false 所以如果我可以從管道代碼中更改並制作一個可執行的 apk,那將是非常可取的。 任何使這項工作的建議將不勝感激。

對於任何面臨此問題的人,

Either you can set the minsdkversion in the app gradle file to less than or equal to 21 (since extractNativeLibs is true by default for those sdk versions: refer https://developer.android.com/guide/topics/manifest/application-element ),否則您可以保持 minsdkeversion 不變,並在應用程序標記的 android 清單中將 extractNativeLibs 顯式定義為 true。 因此,此答案僅關注問題已發布的管道構建,如果您想在本地構建它,可能還有其他方法可以實現這一目標。 (例如在此線程中發布的答案Targeting SDK Android Q 導致 Failed to finalize session-APK: INSTALL_FAILED_INVAL=)提取本機庫失敗

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM