Gradle flavors - 应用缓存

时间:2015-05-12 11:08:29

标签: android android-gradle

在我的应用程序中,我使用Gradle种口味:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 19
    buildToolsVersion '20.0.0'
    defaultConfig {
        applicationId "com.my.application"
        minSdkVersion 16
        targetSdkVersion 19
        versionCode 11
        versionName "1.4.1"
    }
    signingConfigs {
        releaseConfig {
            storeFile file("C:\\!Dev\\KeyStore\\xxxxx")
            storePassword = "xxxxx"
            keyAlias = "xxxxx"
            keyPassword = "xxxxx"
        }
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.releaseConfig

            // adds version to file name
            applicationVariants.all { variant ->
                variant.outputs.each { output ->
                    def outputFile = output.outputFile
                    if (outputFile != null && outputFile.name.endsWith('.apk')) {
                        def fileName = outputFile.name.replace('.apk', "-${versionName}.apk")
                        output.outputFile = new File(outputFile.parent, fileName)
                    }
                }
            }
            //--------------------------------------------------------------------------------
        }
    }

    productFlavors {
        MyAppLocal {
            applicationId "com.my.application.local"
            versionName "1.4.1.1"
            versionCode 13
        }

        MyAppLocal202{
            applicationId "com.my.application.local202"
            versionName "1.4.1.1"
            versionCode 13
        }

        MyAppTest {
            applicationId "com.my.application.test"
        }

        MyAppTest2 {
            applicationId "com.my.application.test2"
        }

        MyAppProduction {
            applicationId "com.my.application"
        }
    }

}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])

    compile 'com.android.support:support-v4:19.+'
    compile 'com.android.support:appcompat-v7:19.+'
    compile 'com.mcxiaoke.volley:library:1.0.6'
    compile 'com.google.code.gson:gson:2.2.+'
    compile 'org.jsoup:jsoup:1.8.1'
    compile 'net.sf.opencsv:opencsv:2.3'
}

所有风味版本都安装在同一台设备上 有些时候,应用程序在按下启动器图标后崩溃,没有任何例外 唯一“有趣”的日志是:

ActivityManager﹕ Activity pause timeout for ActivityRecord

手动清除应用程序缓存后,问题解决了(apps->点击应用程序 - >清除数据)

不同的口味是否使用相同的chache / SharedPreferences
如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

不同的口味是否使用相同的缓存/ SharedPreferences?

如果您的口味有不同的applicationID,请选择“否”。 SharedPreferences只是xml文件。并且android通过以下路径将此文件存储在内部存储中:/ data / data / $ {applicationID}。 因此,SharedPreferences不应成为您问题的原因。

如何解决这个问题?

你能用更多的堆栈跟踪来更新你的问题。