LoginSignup
6
6

More than 5 years have passed since last update.

INSTALL_FAILED_UID_CHANGED の対処法

Posted at

いつもと違うPCでビルドしたAPKを、
adbからAndroid端末にインストールしようとしたところ、

Waiting for device.
Target device: htc-htl22-*******
Uploading file
local path: *********/app-debug.apk
remote path: /data/local/tmp/**パッケージ名**
Installing **パッケージ名**
DEVICE SHELL COMMAND: pm install -r "/data/local/tmp/**パッケージ名**"
pkg: /data/local/tmp/**パッケージ名**
Failure [INSTALL_FAILED_UID_CHANGED]

みたいなエラーが出てインストールに失敗してしまいました。

ぐぐってみると解決方法として

  • Root取ってAPKの残骸を消せ
  • 端末初期化しろ

みたいな普段使いの端末ではあまりやりたくない解決策しか出てきませんでした。

APKをアンインストールしてもデータ領域には残骸が残るらしく、
DebugとかでUIDが異なるAPKを入れようとすると、
この残骸と衝突してINSTALL_FAILED_UID_CHANGEDというエラーが出るそうです。

残骸を消すにはルート取ったり初期化が必要なわけで…。

かなり手詰まり感がすごいのですが、楽な回避方法を思いつきました。

解決方法

その解決方法は「Package name」を変えることです。

データ領域にパッケージ名でファイルが作られるので、
パッケージ名さえ変えてしまえば衝突が回避できます。

AndroidStudioで開発していればGradleをいじるだけで
簡単にパッケージ名を変えられるのでこれを使わない手はありません。

(本番のパッケージ名はもとの名前に戻す、なんてことも可能です。)

Gradleでパッケージ名を変える

apply plugin: 'android'

android {
    compileSdkVersion 19
    buildToolsVersion "19.1.0"

    defaultConfig {
        minSdkVersion 15
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
        // これを追記
        applicationId "新しいパッケージ名"
    }
    buildTypes {

       ……

これでビルドして端末にインストールしたらうまくいきました。

6
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6