作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的签名应用程序版本较旧,我正尝试使用较新版本进行升级,但未安装错误应用程序。我不想重新安装该应用程序,因为许多用户正在实时使用旧版本。我研究了它,发现唯一的区别是Gradle文件。
旧版本build.gradle
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.2'
}
}
allprojects {
repositories {
jcenter()
google()
}
}
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.4'
}
}
allprojects {
repositories {
maven { url "https://maven.google.com" }
jcenter()
google()
}
}
buildscript {
repositories {
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath 'io.fabric.tools:gradle:1.+'
}
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
repositories {
maven { url 'https://maven.fabric.io/public' }
}
android {
compileSdkVersion 25
buildToolsVersion '27.0.3'
defaultConfig {
applicationId "in.spoors"
targetSdkVersion 25
multiDexEnabled true
minSdkVersion 14
ndk {
abiFilters "armeabi-v7a", "x86", "armeabi"
}
}
flavorDimensions "default"
productFlavors {
nd {
applicationIdSuffix ".effortplus"
buildConfigField("boolean", "IS_LIVE", "false")
// resValue("string", "server_base_url", "http://nd.spoors.in/mf6")
// resValue("string","server_base_url","http://ma.spoors.in:8083/effortPlusUat")
resValue("string", "authority", "in.spoors.effortplus.provider")
resValue("string", "file_authority", "in.spoors.effortplus.fileprovider")
resValue("string", "app_name", "EFFORT Plus")
resValue("string", "app_folder_name", "EFFORT Plus")
resValue("string", "backup_app_folder_name", "EFFORT Plus")
resValue("string", "title_activity_home", "EFFORT Plus")
}
live {
applicationIdSuffix ".effortplus"
buildConfigField("boolean", "IS_LIVE", "true")
// resValue("string", "server_base_url", "https://spoors.in/mobile")
resValue("string", "authority", "in.spoors.effortplus.provider")
resValue("string", "file_authority", "in.spoors.effortplus.fileprovider")
resValue("string", "app_name", "EFFORT Plus")
resValue("string", "app_folder_name", "EFFORT Plus")
resValue("string", "backup_app_folder_name", "EFFORT Plus")
resValue("string", "title_activity_home", "EFFORT Plus")
}
secure_live {
applicationIdSuffix ".effort2mfmdm"
buildConfigField("boolean", "IS_LIVE", "true")
// resValue("string", "server_base_url", "https://secure.spoors.in/effort6")
//resValue("string", "server_base_url", "http://nd.spoors.in:9080/effort5-2016")
// resValue("string","server_base_url","https://nd.spoors.in/effort5-2016")
resValue("string", "authority", "in.spoors.effort2mfmdm.provider")
resValue("string", "file_authority", "in.spoors.effort2mfmdm.fileprovider")
resValue("string", "app_name", "EFFORT MAPPS")
resValue("string", "app_folder_name", "EFFORT MAPPS")
resValue("string", "backup_app_folder_name", "EFFORT MAPPS")
resValue("string", "title_activity_home", "EFFORT MAPPS")
}
mapps_byod {
applicationIdSuffix ".effort2mfmdm.byod"
buildConfigField("boolean", "IS_LIVE", "true")
// resValue("string", "server_base_url", "https://secure.spoors.in/effort6")
//resValue("string", "server_base_url", "http://nd.spoors.in:9080/effort5-2016")
// resValue("string","server_base_url","https://nd.spoors.in/effort5-2016")
resValue("string", "authority", "in.spoors.effort2mfmdm.byod.provider")
resValue("string", "file_authority", "in.spoors.effort2mfmdm.byod.fileprovider")
resValue("string", "app_name", "EFFORT MAPPS")
resValue("string", "app_folder_name", "EFFORT MAPPS")
resValue("string", "backup_app_folder_name", "EFFORT MAPPS")
resValue("string", "title_activity_home", "EFFORT MAPPS")
}
mapps_cod {
applicationIdSuffix ".effort2mfmdm.cod"
buildConfigField("boolean", "IS_LIVE", "true")
// resValue("string", "server_base_url", "https://secure.spoors.in/effort6")
//resValue("string", "server_base_url", "http://nd.spoors.in:9080/effort5-2016")
// resValue("string","server_base_url","https://nd.spoors.in/effort5-2016")
resValue("string", "authority", "in.spoors.effort2mfmdm.cod.provider")
resValue("string", "file_authority", "in.spoors.effort2mfmdm.cod.fileprovider")
resValue("string", "app_name", "EFFORT MAPPS")
resValue("string", "app_folder_name", "EFFORT MAPPS")
resValue("string", "backup_app_folder_name", "EFFORT MAPPS")
resValue("string", "title_activity_home", "EFFORT MAPPS")
}
mapps_cod_uat {
applicationIdSuffix ".effort2mfmdm.coduat"
buildConfigField("boolean", "IS_LIVE", "true")
// resValue("string", "server_base_url", "https://secure.spoors.in/effort6")
//resValue("string", "server_base_url", "http://nd.spoors.in:9080/effort5-2016")
// resValue("string","server_base_url","https://nd.spoors.in/effort5-2016")
resValue("string", "authority", "in.spoors.effort2mfmdm.coduat.provider")
resValue("string", "file_authority", "in.spoors.effort2mfmdm.coduat.fileprovider")
resValue("string", "app_name", "EFFORT MAPPS")
resValue("string", "app_folder_name", "EFFORT MAPPS")
resValue("string", "backup_app_folder_name", "EFFORT MAPPS")
resValue("string", "title_activity_home", "EFFORT MAPPS")
}
mapps_byod_uat {
applicationIdSuffix ".effort2mfmdm.byoduat"
buildConfigField("boolean", "IS_LIVE", "true")
// resValue("string", "server_base_url", "https://secure.spoors.in/effort6")
//resValue("string", "server_base_url", "http://nd.spoors.in:9080/effort5-2016")
// resValue("string","server_base_url","https://nd.spoors.in/effort5-2016")
resValue("string", "authority", "in.spoors.effort2mfmdm.byoduat.provider")
resValue("string", "file_authority", "in.spoors.effort2mfmdm.byoduat.fileprovider")
resValue("string", "app_name", "EFFORT MAPPS")
resValue("string", "app_folder_name", "EFFORT MAPPS")
resValue("string", "backup_app_folder_name", "EFFORT MAPPS")
resValue("string", "title_activity_home", "EFFORT MAPPS")
}
}
dexOptions {
jumboMode = true
javaMaxHeapSize "2g"
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'
}
}
}
dependencies {
implementation files('libs/CWAC-WakefulIntentService.jar')
implementation files('libs/antlr-4.5.3-complete.jar')
implementation files('libs/org.eclipse.paho.android.service-1.0.2.jar')
implementation files('libs/org.eclipse.paho.client.mqttv3-1.0.2.jar')
implementation files('libs/commons-lang3-3.4.jar')
implementation files('libs/edm.jar')
implementation files('libs/license.jar')
implementation files('libs/rc.jar')
// implementation files('libs/PdfViewer.jar')
implementation('com.crashlytics.sdk.android:crashlytics:2.5.5@aar') {
transitive = true;
}
implementation files('libs/97bt-android-library.jar')
implementation files('libs/97bt-android-library-fp.jar')
implementation files('libs/AEM_SCRYBE_SEP_2014.jar')
implementation files('libs/core-3.2.0.jar')
implementation files('libs/deviceutility.jar')
implementation files('libs/getprintableimage.jar')
implementation files('libs/mosambeelib_v1.0.0.042.jar')
// implementation files('libs/ProwessSdkV2.3.6.jar')
implementation files('libs/LeopardProwessSdkV-1.1.9.jar')
implementation 'com.squareup.okhttp3:okhttp:3.4.1'
implementation 'com.google.android.gms:play-services-base:8.4.0'
implementation 'com.google.android.gms:play-services-maps:8.4.0'
implementation 'com.google.android.gms:play-services-gcm:8.4.0'
implementation 'com.google.android.gms:play-services-location:8.4.0'
implementation 'com.google.android.gms:play-services-analytics:8.4.0'
implementation 'com.google.maps.android:android-maps-utils:0.4.+'
implementation 'com.android.support:multidex:1.0.2'
implementation 'com.android.support:appcompat-v7:25.3.1'
implementation 'com.android.support:design:25.3.1'
implementation 'com.android.support:cardview-v7:25.3.1'
implementation 'com.android.support:recyclerview-v7:25.3.1'
implementation 'com.scottyab:rootbeer-lib:0.0.4'
implementation 'net.zetetic:android-database-sqlcipher:3.5.7@aar'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
implementation 'com.android.support:support-v4:25.3.1'
implementation(name: 'ImageOptimizationApi', ext: 'aar')
implementation 'com.github.barteksc:android-pdf-viewer:2.8.2'
// implementation files('libs/RootTools-4.2.jar')
// implementation files('libs/android-support-v4-1.0.jar')
// implementation files('libs/commons-codec-1.6.jar')
// implementation files('libs/commons-io-2.4.jar')
// implementation files('libs/commons-lang3-3.1.jar')
// implementation files('libs/httpclientandroidlib-1.1.1.jar')
// implementation files('libs/maaS360securehttpconnection.jar')
// implementation files('libs/maas360analytics.jar')
// implementation files('libs/maas360clipboard.jar')
// implementation files('libs/maas360dlpsdk.jar')
// implementation files('libs/maas360encryptionapi.jar')
// implementation files('libs/maas360gatewaysdk.jar')
// implementation files('libs/maas360ipclib.jar')
// implementation files('libs/maas360logger.jar')
// implementation files('libs/maas360sdk.jar')
// implementation files('libs/maas360sqlcipher.jar')
// implementation files('libs/maas360utils.jar')
// implementation files('libs/sqlcipher.jar')
// implementation files('libs/gson-2.2.3.jar')
}
repositories {
flatDir {
dirs 'libs'
}
}
buildscript {
repositories {
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath 'io.fabric.tools:gradle:1.+'
}
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
repositories {
maven { url 'https://maven.fabric.io/public' }
}
android {
compileSdkVersion 28
buildToolsVersion '27.0.3'
defaultConfig {
applicationId "in.spoors"
targetSdkVersion 25
multiDexEnabled true
minSdkVersion 14
ndk {
abiFilters "armeabi-v7a", "x86", "armeabi"
}
}
flavorDimensions "default"
productFlavors {
nd {
applicationIdSuffix ".effortplus"
buildConfigField("boolean", "IS_LIVE", "false")
// resValue("string", "server_base_url", "http://nd.spoors.in/mf6")
// resValue("string","server_base_url","http://ma.spoors.in:8083/effortPlusUat")
resValue("string", "authority", "in.spoors.effortplus.provider")
resValue("string", "file_authority", "in.spoors.effortplus.fileprovider")
resValue("string", "app_name", "EFFORT Plus")
resValue("string", "app_folder_name", "EFFORT Plus")
resValue("string", "backup_app_folder_name", "EFFORT Plus")
resValue("string", "title_activity_home", "EFFORT Plus")
}
live {
applicationIdSuffix ".effortplus"
buildConfigField("boolean", "IS_LIVE", "true")
// resValue("string", "server_base_url", "https://spoors.in/mobile")
resValue("string", "authority", "in.spoors.effortplus.provider")
resValue("string", "file_authority", "in.spoors.effortplus.fileprovider")
resValue("string", "app_name", "EFFORT Plus")
resValue("string", "app_folder_name", "EFFORT Plus")
resValue("string", "backup_app_folder_name", "EFFORT Plus")
resValue("string", "title_activity_home", "EFFORT Plus")
}
secure_live {
applicationIdSuffix ".effort2mfmdm"
buildConfigField("boolean", "IS_LIVE", "true")
// resValue("string", "server_base_url", "https://secure.spoors.in/effort6")
//resValue("string", "server_base_url", "http://nd.spoors.in:9080/effort5-2016")
// resValue("string","server_base_url","https://nd.spoors.in/effort5-2016")
resValue("string", "authority", "in.spoors.effort2mfmdm.provider")
resValue("string", "file_authority", "in.spoors.effort2mfmdm.fileprovider")
resValue("string", "app_name", "EFFORT MAPPS")
resValue("string", "app_folder_name", "EFFORT MAPPS")
resValue("string", "backup_app_folder_name", "EFFORT MAPPS")
resValue("string", "title_activity_home", "EFFORT MAPPS")
}
mapps_byod {
applicationIdSuffix ".effort2mfmdm.byod"
buildConfigField("boolean", "IS_LIVE", "true")
// resValue("string", "server_base_url", "https://secure.spoors.in/effort6")
//resValue("string", "server_base_url", "http://nd.spoors.in:9080/effort5-2016")
// resValue("string","server_base_url","https://nd.spoors.in/effort5-2016")
resValue("string", "authority", "in.spoors.effort2mfmdm.byod.provider")
resValue("string", "file_authority", "in.spoors.effort2mfmdm.byod.fileprovider")
resValue("string", "app_name", "EFFORT MAPPS")
resValue("string", "app_folder_name", "EFFORT MAPPS")
resValue("string", "backup_app_folder_name", "EFFORT MAPPS")
resValue("string", "title_activity_home", "EFFORT MAPPS")
}
mapps_cod {
applicationIdSuffix ".effort2mfmdm.cod"
buildConfigField("boolean", "IS_LIVE", "true")
// resValue("string", "server_base_url", "https://secure.spoors.in/effort6")
//resValue("string", "server_base_url", "http://nd.spoors.in:9080/effort5-2016")
// resValue("string","server_base_url","https://nd.spoors.in/effort5-2016")
resValue("string", "authority", "in.spoors.effort2mfmdm.cod.provider")
resValue("string", "file_authority", "in.spoors.effort2mfmdm.cod.fileprovider")
resValue("string", "app_name", "EFFORT MAPPS")
resValue("string", "app_folder_name", "EFFORT MAPPS")
resValue("string", "backup_app_folder_name", "EFFORT MAPPS")
resValue("string", "title_activity_home", "EFFORT MAPPS")
}
mapps_cod_uat {
applicationIdSuffix ".effort2mfmdm.coduat"
buildConfigField("boolean", "IS_LIVE", "true")
// resValue("string", "server_base_url", "https://secure.spoors.in/effort6")
//resValue("string", "server_base_url", "http://nd.spoors.in:9080/effort5-2016")
// resValue("string","server_base_url","https://nd.spoors.in/effort5-2016")
resValue("string", "authority", "in.spoors.effort2mfmdm.coduat.provider")
resValue("string", "file_authority", "in.spoors.effort2mfmdm.coduat.fileprovider")
resValue("string", "app_name", "EFFORT MAPPS")
resValue("string", "app_folder_name", "EFFORT MAPPS")
resValue("string", "backup_app_folder_name", "EFFORT MAPPS")
resValue("string", "title_activity_home", "EFFORT MAPPS")
}
mapps_byod_uat {
applicationIdSuffix ".effort2mfmdm.byoduat"
buildConfigField("boolean", "IS_LIVE", "true")
// resValue("string", "server_base_url", "https://secure.spoors.in/effort6")
//resValue("string", "server_base_url", "http://nd.spoors.in:9080/effort5-2016")
// resValue("string","server_base_url","https://nd.spoors.in/effort5-2016")
resValue("string", "authority", "in.spoors.effort2mfmdm.byoduat.provider")
resValue("string", "file_authority", "in.spoors.effort2mfmdm.byoduat.fileprovider")
resValue("string", "app_name", "EFFORT MAPPS")
resValue("string", "app_folder_name", "EFFORT MAPPS")
resValue("string", "backup_app_folder_name", "EFFORT MAPPS")
resValue("string", "title_activity_home", "EFFORT MAPPS")
}
}
dexOptions {
jumboMode = true
javaMaxHeapSize "2g"
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'
}
}
}
dependencies {
implementation files('libs/CWAC-WakefulIntentService.jar')
implementation files('libs/antlr-4.5.3-complete.jar')
implementation files('libs/org.eclipse.paho.android.service-1.0.2.jar')
implementation files('libs/org.eclipse.paho.client.mqttv3-1.0.2.jar')
implementation files('libs/commons-lang3-3.4.jar')
implementation files('libs/edm.jar')
implementation files('libs/license.jar')
implementation files('libs/rc.jar')
// implementation files('libs/PdfViewer.jar')
implementation('com.crashlytics.sdk.android:crashlytics:2.5.5@aar') {
transitive = true;
}
implementation files('libs/97bt-android-library.jar')
implementation files('libs/97bt-android-library-fp.jar')
implementation files('libs/AEM_SCRYBE_SEP_2014.jar')
implementation files('libs/core-3.2.0.jar')
implementation files('libs/deviceutility.jar')
implementation files('libs/getprintableimage.jar')
implementation files('libs/mosambeelib_v1.0.0.042.jar')
// implementation files('libs/ProwessSdkV2.3.6.jar')
implementation files('libs/LeopardProwessSdkV-1.1.9.jar')
implementation 'com.squareup.okhttp3:okhttp:3.4.1'
implementation 'com.google.android.gms:play-services-base:8.4.0'
implementation 'com.google.android.gms:play-services-maps:8.4.0'
implementation 'com.google.android.gms:play-services-gcm:8.4.0'
implementation 'com.google.android.gms:play-services-location:8.4.0'
implementation 'com.google.android.gms:play-services-analytics:8.4.0'
implementation 'com.google.maps.android:android-maps-utils:0.4.+'
implementation 'com.android.support:multidex:1.0.2'
implementation 'com.android.support:appcompat-v7:25.3.1'
implementation 'com.android.support:design:25.3.1'
implementation 'com.android.support:cardview-v7:25.3.1'
implementation 'com.android.support:recyclerview-v7:25.3.1'
implementation 'com.scottyab:rootbeer-lib:0.0.4'
implementation 'net.zetetic:android-database-sqlcipher:3.5.7@aar'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
implementation 'com.android.support:support-v4:25.3.1'
implementation(name: 'ImageOptimizationApi', ext: 'aar')
implementation 'com.github.barteksc:android-pdf-viewer:2.8.2'
// implementation files('libs/RootTools-4.2.jar')
// implementation files('libs/android-support-v4-1.0.jar')
// implementation files('libs/commons-codec-1.6.jar')
// implementation files('libs/commons-io-2.4.jar')
// implementation files('libs/commons-lang3-3.1.jar')
// implementation files('libs/httpclientandroidlib-1.1.1.jar')
// implementation files('libs/maaS360securehttpconnection.jar')
// implementation files('libs/maas360analytics.jar')
// implementation files('libs/maas360clipboard.jar')
// implementation files('libs/maas360dlpsdk.jar')
// implementation files('libs/maas360encryptionapi.jar')
// implementation files('libs/maas360gatewaysdk.jar')
// implementation files('libs/maas360ipclib.jar')
// implementation files('libs/maas360logger.jar')
// implementation files('libs/maas360sdk.jar')
// implementation files('libs/maas360sqlcipher.jar')
// implementation files('libs/maas360utils.jar')
// implementation files('libs/sqlcipher.jar')
// implementation files('libs/gson-2.2.3.jar')
}
repositories {
flatDir {
dirs 'libs'
}
}
最佳答案
Just go to the Settings --> Apps --> Click on your App. ---> In App info page at the action bar menu there will be an option called " Uninstall for All users " click that. Your app will be completely uninstalled and now you can try installing the new version with no issue. Hope this will help you
关于android - 使用签名的APK升级时未安装应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58877369/
在我们的数据库表上,我们使用两个唯一的非聚集索引来创建跨四个字段的唯一约束。我们使用两个,因为其中一个字段 ZipCode 是一个可为空的字段。如果表中存在一条包含 ZipCode 的 null 条目
我刚刚开始学习 Rails 3 教程,以便对框架有一点熟悉,但我在生成 schema.rb 时遇到了问题。我的操作系统是 Windows 7 x64、Ruby 1.9.2、MySQL2 gem 0.2
我是一名优秀的程序员,十分优秀!