簡體   English   中英

失敗 [INSTALL_FAILED_INVALID_APK]

[英]Failure [INSTALL_FAILED_INVALID_APK]

當我單擊運行我剛剛在 Android Studio 0.2.10 和 select 中創建的項目時,我的 Android(通過 USB 連接並通過 USB 進行調試)出現此錯誤:

Waiting for device.
Target device: 0123456789ABCDEF
Uploading file
    local path: /Users/Rui/AndroidStudioProjects/FirstAppProject/FirstApp/build/apk/FirstApp-debug-unaligned.apk
    remote path: /data/local/tmp/rui.firstapp
Installing rui.firstapp
DEVICE SHELL COMMAND: pm install -r "/data/local/tmp/rui.firstapp"
pkg: /data/local/tmp/rui.firstapp
Failure [INSTALL_FAILED_INVALID_APK]

知道它可能是什么嗎?

我在 Android Studio 中得到了這個,我所做的只是去"Build" > "Clean Project" ,它就起作用了。

只需刪除文件夾中的舊 APK android/app/build/outputs/apk/debug/app-debug.apk。 就這樣。 享受你的編碼......

我曾經遇到過類似的問題,我觀察到的是,我的 Androidmanifest.xml 中的包名稱以一個空格字符開頭。 like " com.example.test" instead of "com.example.test"

我從清單文件中刪除了所有這些無效空格,它解決了我的問題

編輯 1 :包名中的“-”也會在某些 android 版本上導致相同的問題

我遇到了同樣的問題,但沒有一個解決方案對我有用。 問題是我沒有 我的包名中的分隔符。
即如果你的包名是my.packagename很好,但它不能只是mypackagename
從這個錯誤報告中得到了提示。

https://code.google.com/p/android/issues/detail?id=55841

如果有人仍然有問題,那么Build->Clean Project 然后Build->Rebuild project 最后Sync project with Gradle file

如何解決這個問題:

  1. 安裝RootExplorer
  2. 在 SD 卡上創建新的tmp文件夾
  3. 長按 tmp 文件夾,然后選擇Link到此文件夾(菜單中的最后一個選項)
  4. 轉到/data/local/並從底部點擊按鈕CREATE LINK

我遇到了這個問題,上述解決方案都不適合我。

出於某種原因,我的/data/local/tmp目錄上的權限設置不正確(只有 root 有 rwx)。 我使用 ADB 解決了這個問題(你需要一個有根設備):

  1. 通過 USB 連接您的手機
  2. 使用adb shell啟動 ADB
  3. 使用cd /data/local移動到/data/local cd /data/local
  4. 使用su切換到 root 模式
  5. 允許使用chmod 777 tmptmp目錄上讀/寫/執行
  6. 斷開連接,重新啟動 Android Studio 並再次插入設備

通過關閉Instant Run解決了我的問題。 到現在也不知道有什么解釋。 遷移到 android studio 3.0 后,它開始出現這樣的問題。 希望這對將來的人有所幫助。

導航到Run/Debug Configurations

單擊頂部選項卡中的運行 > 編輯配置

  • 模塊:選擇您的應用
  • 安裝選項:部署默認 APK
  • 好的

在此處輸入圖片說明

當我遇到這個問題時,對我來說修復它的是確保 AndroidManifest.xml 包名稱與 build.grade applicationId 相同。

我嘗試了上面提供的大多數解決方案(簡單的解決方案,而不是那些提供 chmod 和更改內部庫的解決方案),但沒有一個有效

最終對我有用的是:“清理項目”->“重建項目”-> 在 build.gradle 應用程序模塊中更改應用程序版本名稱 -> 同步 Gradle -> 在設備上運行應用程序

我找到了這個錯誤的另一個原因。 如果你 root 你的設備訪問權限 /data/local/tmp 可能會改變,所以 adb 無法訪問它的臨時文件。 解決方案是在 sdcard 上創建“tmp”文件夾,並在 /data/local/(通過 ADB shell 或 Root Explorer)中創建指向它的符號鏈接。

如果您在 AndroidManifest 文件中寫入android:extractNativeLibs="false" 然后將其更改為android:extractNativeLibs="true"

我通過不匹配的構建變體遇到了這個問題。 動態交付模塊在調試變體中,而其余模塊正在發布。 只需將動態交付模塊更改為發布、重建和安裝,即可解決問題。

這對我的情況有幫助:

Settings -> Apps -> Google Play Store -> Click "Enable" button.

對於 Flutter 項目,使用 VS Code 編輯器,進入項目源文件夾,刪除“build”文件夾,開始調試。

我在一個帶有 Dagger 和多個模塊的項目中遇到了這個問題。 對我有用的(以上均無效)是 1)清空 .gradle 文件夾 2)清空 .idea 文件夾 3)在項目 gradle.properties 中,標記 org.gradle.caching=false 4)可能使 AS 中的緩存無效,清理,重建

您可能只需要#3,清理然后構建就可以逃脫。

編輯:最近我已經能夠通過重新啟動 AS 來解決這個問題,然后進行清理,然后再次安裝。

對我來說這個問題的原因是為我的應用程序模塊之一選擇了錯誤的構建變體。 從“構建變體”工具中,我選擇了與應用程序模塊匹配的模塊變體,它為我解決了問題。

我在 android Studio 上遇到了這個問題,因為在我的調試版本中,我添加了版本名稱后綴-DEBUG ,而-是問題所在。

嘗試在您的版本名稱和應用程序 ID 上只包含字母、數字和點

我最近在構建多模塊、多 apk 應用程序時遇到了這個問題。 事實證明,我的頂級 gradle 構建正在修改android:versionCode ,這使其與動態功能模塊中的清單不同步。 這花了我幾個小時才找到原因,而只需幾分鍾就可以解決。

我發現android studio日志本身,

想法日志

, 比 IDE 更能告訴我這個問題。

2020-02-05 22:52:56,206 [thread 246]   WARN -            #com.android.ddmlib - Failed to commit install session 986623974 with command cmd package install-commit 986623974. Error: INSTALL_FAILED_INVALID_APK: /data/app/vmdl986623974.tmp/1_mytestapp-afat-debug version code 1829 inconsistent with 18290 
2020-02-05 22:52:56,206 [thread 246]   WARN - a.run.tasks.AbstractDeployTask - Install failed: The application could not be installed: INSTALL_FAILED_INVALID_APK The APKs are invalid. 

試試這些命令:

cd android 

然后

./gradlew clean

然后

react-native run-android

如果已安裝,請卸載以前的版本,然后重試。它可能會有所幫助

我使用了 androidquickstart maven 原型並面臨同樣的問題:

我的軟件包名稱是唯一的 androidquickstart。 根據之前的建議

  1. 我已將包更改為 androidquickstart.test
  2. 然后在 AndroidManifest.xml 中,我將package="androidquickstart"更改為package="androidquickstart.test"並相應地從 xml <activity android:name=".test.HelloAndroidActivity" >其他部分刪除了測試到<activity android:name=".HelloAndroidActivity" >
  3. 還修復了 java 文件中的包問題(由 IDE 突出顯示)

我只是有同樣的錯誤。 我在應用程序 id 中有 2015 年。 我用 15 替換了 2015 並解決了它。

另外,如果您使用 Android Studio,您可以嘗試:Tools / Android / Synch Project with Gradle Files

在設備設置中強制停止應用程序。

我遇到了這個問題,上述解決方案都不適合我。

原因可能是 root 版本手機僅在 sdcard 上具有可用配額或 apk 安裝權限。

我使用 ADB 解決了這個問題(你需要一個有根設備):

  1. 通過 USB 連接您的手機
  2. 使用 adb shell 啟動 ADB
  3. 使用 su 切換到 root 模式
  4. 在 sdcard 中創建 tmp 文件夾:mkdir /sdcard/tmp
  5. cd /數據/本地
  6. 創建鏈接 sdcard 中的文件夾:ln -s /sdcard/tmp tmp

這次失敗似乎有多種原因。 對我來說,問題是在 AndroidManifest 文件中,我使用“uses-library”標簽引用了一個不存在的庫(僅在此特定設備中)。 刪除此設備沒有正確安裝 apk 的庫后。

您的包名稱應包含由點組合的單詞,例如 com.example 或 prashant.mydairy ..... 現在應該可以正常工作了

您必須更新包名稱的文件如下:1)清單文件 2)Gradle 文件(模塊 appp):applicationId "package.name"

taskAffinity 名稱必須至少有一個“.” 分隔器

如果您有權訪問設備控制台(adb shell),則更改以下權限:

  1. chmod 777 /數據/
  2. chmod 777 /數據/本地/
    您可能還想嘗試將 apk 復制到/data/local/在這種情況下,請確保為 apk 設置了正確的權限
  3. chmod 777 /data/local/myapk.apk 您現在可以嘗試安裝: pm install -r -d /data/local/myapk.apk (注意絕對路徑)

看起來像后面有一個數字是罪魁禍首。

我對以下 applicationId 有同樣的問題

org.tony.stark.125jarvis

將其更改為

org.tony.stark.jarvis

我能夠將該應用程序安裝到 android 設備。

當我單擊運行一個我剛剛在Android Studio 0.2.10中創建的項目並選擇我的Android(通過USB連接並通過USB調試打開)時,出現此錯誤:

Waiting for device.
Target device: 0123456789ABCDEF
Uploading file
    local path: /Users/Rui/AndroidStudioProjects/FirstAppProject/FirstApp/build/apk/FirstApp-debug-unaligned.apk
    remote path: /data/local/tmp/rui.firstapp
Installing rui.firstapp
DEVICE SHELL COMMAND: pm install -r "/data/local/tmp/rui.firstapp"
pkg: /data/local/tmp/rui.firstapp
Failure [INSTALL_FAILED_INVALID_APK]

有什么想法嗎?

刪除AndroidManifest.xml中的代碼:

tools:replace =“ android:appComponentFactory” android:appComponentFactory =“”

有用。

就我而言,當我嘗試使用pm install -r -d /sdcard/Download/foo.apk安裝apk pm install -r -d /sdcard/Download/foo.apk ,出現此錯誤Failure [INSTALL_FAILED_INVALID_APK]錯誤。

由於此軟件包已由pm uninstall <foo_package_name> ,因此我嘗試刪除/data/local/tmp/<foo_package_name>但沒有運氣。

我需要重啟android系統才能修復。 (不確定是否需要刪除data/local/tmp/<foo_package_name>步驟。)

[更新]

現在又發生了一次,我嘗試不卸載,因為我需要保持apk繼承sdk 22權限,所以這次我使用am force-stop <fook_package_name>使其先停止,然后重試pm install ,它修復了錯誤。

很大的更新后,檢查applicationId的的build.gradle (Module: app)和封裝在AndroidManifest.xml是相同的。 我有同樣的問題,所以我解決了。

我遇到了類似的問題,但是在我重啟Ubuntu PC后,它會自動修復,因為我安裝了一些Ubuntu(12.04)app更新,從而導致了此問題。

我在android studio 3.4中遇到了這個問題。 通過關閉Instant Run解決了我的問題。 到現在為止還不知道任何解釋。 希望這有助於將來的某些人。

不知道究竟是什么導致了這個問題。
A 有幾個方案,所有方案都可以構建和安裝,有一次,一個不想要(在采取什么行動之后 - 不知道)。 在所有未知情況下,我執行:
npm run mac-reinstall
scripts部分的package.json中的位置:
"mac-reinstall": "rm -rf -v package-lock.json ios/build ios/Podfile.lock android/.gradle android/build android/app/build node_modules && npm i && cd ios/ && rm -rf Pods/ && pod install && cd ../"
您可以嘗試從腳本中只保留 Android 的部分。

如果您有多個具有多種風格的模塊項目,並且每種風格都有不同的applicationId ,那么您必須確保所有模塊都針對相同的構建變體。
來自 Android Studio 的 Active Build Variant

如果 build clean 不起作用,請檢查您的構建變體是否所有模塊都具有相同的變體。

我剛剛遇到了與此消息相同的問題

錯誤:ADB 以退出代碼 1 退出執行流式安裝 adb:未能安裝 ~\\build\\app\\outputs\\flutter-apk\\app.apk:失敗 [INSTALL_FAILED_INVALID_APK:無法在 \/data\/app\/com. example.weather_flutter-Azzrb6hHi67p7xfzCG6lyA==: Package \/data\/app\/com.example.weather_flutter-Azzrb6hHi67p7xfzCG6lyA==\/base.apk code is missing] 在 SM A105F 上啟動應用程序時出錯。

對我有用的解決方案是刪除此項目目錄build\\app\\outputs\\apk\\debug<\/code>和build\\app\\outputs\\flutter-apk<\/code>上的所有文件,從那里開始一切都很完美

對於那些可能仍然遇到此問題的人,您可以清理、重建和無效緩存不起作用,嘗試幾件事;

  1. 將您的 gradle 構建版本升級到最新版本。

  2. 如果您的代碼是 kolin,請檢查用於使用 Gradle 構建的 Kotlin 版本是否與捆綁到 IDE 插件中的版本相同。 升級到捆綁到 IDE 然后同步。 我升級到了android studio Arctic fox 2021,哈哈這個問題,這對我有用。

出於某種原因,當我將我的 Android Studio 更新為 Artic Fox 時,這一直發生在我的應用程序風格中。

為了能夠再次運行該應用程序,我需要卸載、清理和無效崩潰。

所以我決定將我的版本更新到 Bumblebee,現在一切正常,無需失效崩潰、清理或卸載我的應用程序。

我在使用 flutter 應用程序時遇到了這個問題,我剛剛刪除了“/android/app/build/outputs/apk/debug/app-debug.apk”文件。 我重新運行它並修復它。

導航

運行/調試配置

單擊頂部選項卡中的運行 > 編輯配置

  • 模塊: Select 你的App
  • 安裝選項:> 部署默認 APK
  • 啟動:> 默認活動

在此處輸入圖像描述

暫無
暫無

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

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