2016-07-15 8 views
1

古いバージョンのAndroidアプリをアップグレードするために新しいバージョンのAndroidアプリを作成しましたが、アップグレード後の最初の実行時に古いアプリのSharedPreferencesからログインユーザー名を取り込みます新しいデータモデルを使ってすべてを処理します。新しいコードベースのbuild.gradleは、新しいversionNameとversionCodeを指定し、まだ我々は古いアプリがインストールされていたデバイスへのAndroid Studioから実行しようとすると、私たちは、次のエラーメッセージを含むダイアログボックスを取得:Androidスタジオのインストールに失敗しました

Installation failed since the device already has a newer version of this application. 
In order to proceed, you have to uninstall the existing application. 

WARNING. Uninstalling will removed the application data! 

Do you want to uninstall the existing application? 

[OK] [Cancel] 

明らかに私たちがそれを受け入れるならば、すべてのユーザーデータと共に古いアプリをアンインストールし、私たちが意図したものを達成することはできません。

この問題について、インターネット上で何かを見つけることができません

error message

OLD APPのbuild.gradle:

versionCode 1 
versionName '1.4.1' 

NEW APP build.gradle:テスト用

versionCode 2 
versionName '2.0.0' 
+1

build.gradleの "versionCode"を更新する必要があります。古いバージョン – W0rmH0le

答えて

0

バージョンコードを現在のバージョンに変更することができますデバイス内で高くなります。

0

あなたの古いAPPの方が新しいアプリよりも高いversionCodeを持っているため、このエラーが発生していると思います。

したがって、新しいアプリケーションのversionCodeを以前のAPPと比較してより高い(または少なくとも同等の)値に更新する必要があります。新しいアプリで

:あなたのoldVersionはEclipseで構築された場合

build.grade

android { 
    ... 
    defaultConfig { 
    ... 
    versionCode 2 
    versionName "1.1" 
    } 
    ... 
} 

は、versionCodeはおそらくAndroidManifest.xmlを

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
     package="string" 
     android:versionCode="integer" 
     android:versionName="string" 
     . . . 
</manifest> 
+0

と比較すると、新しいバージョンのバージョンコードが高くなるはずです。新しいコードベースのbuild.gradleは新しいversionNameを指定し、 versionCode「 旧アプリ!:versionName 1.4.1およびversionCode 1 新アプリ:versionName 2.0.0およびversionCode 2 が明らかに反対の私は、このエラーメッセージ – alex

+0

こんにちは、アレックスによるので、唖然とした理由である、本当です申し訳ありません..両方のバージョンからbuild.gradleで質問を更新できますか?違いはversionNumberだけですか? – W0rmH0le

0

@alex、アップデートで定義されましたbuild.gradleの "versionCode"、 "version name"完全にきれいなprojと再構築の後。多くの場合、古いデータはすべて削除されません。

0

古いデベロッパーの一部のgradleスクリプトが、ビルド時にversionCodeをはるかに高い値で上書きしていたようですが、実際には非常に高い数字を使用して、代わりにINSTALL_FAILED_UPDATE_INCOMPATIBLEを取得します。 :

関連する問題