2014-03-27 83 views
2

問題 我正在開發Android應用程序,並出於某種原因想我的Android設備上安裝包時,我有「未安裝應用程序」的錯誤。此應用程序以前已成功安裝。特定軟件包名稱Android應用無法安裝

去調查,我去的基本知識:

  1. 從設備
  2. 確保安全>來源不明檢查
  3. 創建隨機軟件包名的HelloWorld應用程序,並試圖卸載我的應用程序安裝在設備上:成功
  4. 創造了同一軟件包名的HelloWorld應用作爲我的問題的項目:失敗

所以我的猜測是我的軟件包名稱指向一些沒有正確卸載的東西。

問題 有沒有辦法確保Android設備上與包名相關的所有數據都被刪除?

上下文 - 使用AIDE應用程序直接在android中進行開發。自從我旅行以來,無法訪問任何計算機。 設備: - 三星Galaxy注10 2014 - 採用Android 4.3(不根植)

+0

我假設它在模擬器上運行良好? – Sree

+0

我認爲,在android操作系統上的應用程序不應該有相同的包名稱,例如:org.arya.lntts.MainActivity作爲應用程序的一個laucher和相同的包名不應該給不同的應用程序。請嘗試增加您的android:versionCode – 2014-03-27 04:05:19

+0

@Sreekanthss:我正在使用AIDE IDE應用程序直接在Android上開發,因此沒有模擬器。我在旅行,所以沒有電腦。 – Absolom

回答

1

的一個原因,爲什麼這可能發生的情況是因爲上次卸載過程中,並非所有相關的應用程序文件已被刪除。我不知道爲什麼會發生這種情況,但我知道它有時會發生。

可能有剩餘的文件屬於不再分配給應用程序的用戶/組ID。 當您現在安裝具有相同包名的應用程序時,它將得到一個新用戶/組,因爲它不是更新,而是全新安裝。 由於您的應用程序仍然具有相同的軟件包名稱,因此它希望創建相同的文件,但不能這樣做,因爲以前的安裝中仍然存在一個或多個文件/目錄,並且由於它缺少權限而無法覆蓋/刪除它們因爲它們由不同的用戶/組ID標識。

您可以檢查以下位置是否與您的軟件包名稱有關的文件/目錄,但是我懷疑如果沒有root訪問權限,您可以做很多事情。

  • /數據/數據
  • /數據/應用
  • /數據/ APP-ASEC
  • /數據/應用-LIB
  • /數據/達爾維克緩存
  • /數據/本地/ tmp目錄
  • 到/ mnt/ASEC
  • 到/ mnt/OBB
  • 到/ mnt/SD卡/安卓/ OBB

(全面披露:這是我的應用程序)

隨着根的SD Maid的「CorpseFinder」功能會檢查最常見的位置(參見設置)這個問題。