先日、Android開発環境をeclipseからAndroidStudioに変更しました。
移行は何とか無事に完了したのですが、リリース済みのアプリをインストールした実機でRunをすると、
Failure [INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES]
このようなエラーが出て一度アプリを削除しないとインストール出来ないという事態が発生しました。
このままアプリのアップデートをしたら、ユーザーには一度アプリを削除してもらわないといけないのかな、、と思ったのですが、そんな事はなく。
自分の環境の場合は、debug用のapkがインストールされていたようなので、debug用のapkを作成するときにも以下のようにkeyを使用するように変更
build.gradleファイル
Properties releaseProps = new Properties() if(rootProject.file("release.properties").exists()){ releaseProps.load(new FileInputStream(rootProject.file("release.properties"))) } else { println("release.propertiesファイルをプロジェクトルートに作成してください。") } android { compileSdkVersion Integer.parseInt(project.ANDROID_BUILD_SDK_VERSION) buildToolsVersion project.ANDROID_BUILD_TOOLS_VERSION defaultConfig { applicationId 'sample' minSdkVersion Integer.parseInt(project.ANDROID_BUILD_MIN_SDK_VERSION) targetSdkVersion Integer.parseInt(project.ANDROID_BUILD_TARGET_SDK_VERSION) versionCode {versionCode} versionName "versionName" } signingConfigs { debug { storeFile rootProject.file(releaseProps.STORE_FILE) storePassword releaseProps.STORE_PASSWORD keyAlias releaseProps.KEY_ALIAS keyPassword releaseProps.KEY_PASSWORD } release { storeFile rootProject.file(releaseProps.STORE_FILE) storePassword releaseProps.STORE_PASSWORD keyAlias releaseProps.KEY_ALIAS keyPassword releaseProps.KEY_PASSWORD } } }
ちなみに、release.propertiesファイルと、gradle.propertiesファイルは、プロジェクト直下に置いています。
gradle.propertiesのファイル内容は、こちら
ANDROID_BUILD_MIN_SDK_VERSION=9 ANDROID_BUILD_TARGET_SDK_VERSION=21 ANDROID_BUILD_TOOLS_VERSION=21.1.1 ANDROID_BUILD_SDK_VERSION=21
これをbuild.gradle内で
project.ANDROID_BUILD_MIN_SDK_VERSION
このように呼び出します。
release.propertiesのファイル内容は、こちら
STORE_FILE=releasekey.keystore STORE_PASSWORD=password KEY_ALIAS=releasekey KEY_PASSWORD=password
注意点としては、セミコロンとか、コロンはいらないという事ですね。
もっと他に方法ありそうですが、これでいちいちアプリの削除をしなくてもRunでアプリのインストールが出来るようになりました。
Android Studio - Run signed apk on emulator - Stack Overflow