我是 Android Studio 的新手,在设备上运行调试构建工作正常,但是要在应用程序购买中进行测试(显然要发布),我需要一个使用普通 key 签名的发布构建。我可以使用 Build -> Generate signed APK 制作 APK,但包名称似乎不正确。这是我的构建文件:
apply plugin: 'android'
android {
compileSdkVersion 19
buildToolsVersion "19.0.1"
defaultConfig {
minSdkVersion 8
targetSdkVersion 9
testPackageName "com.company.common.common"
testInstrumentationRunner "android.common.InstrumentationTestRunner"
}
signingConfigs {
releaseConfig {
storeFile file("filname")
storePassword "password"
keyAlias "alias"
keyPassword "password"
}
}
buildTypes {
debug {
packageNameSuffix ".debug"
}
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
signingConfig signingConfigs.releaseConfig
}
}
productFlavors {
Flavor1 {
packageName "com.company.test"
}
}
}
dependencies {
// some dependencies
}
注意 flavor 中覆盖的包名称。那种味道没有表现出来;唯一的manifest在main下,指定了com.company.common的一个包。如果我使用 Android 创建一个 com.company.test APK 并将其安装到设备上,然后从 Android Studio 生成一个 APK 并安装它,我最终会在设备上得到两个应用程序,而不是第二个应用程序替换第一个。这表明包名称不同,我假设是因为 Android Studio 正在生成一个包含 com.company.common 包的 APK。虽然不确定如何验证这一点。
当我刚刚构建项目时,我得到了调试 APK 但没有发布 APK。如何获得具有正确包名称的发布 APK?我刚刚从 Android Studio 运行该应用程序,它说它正在安装 com.company.test.debug,并且它需要在安装之前卸载该应用程序。所以现在我认为生成签名的 APK 生成了一个带有调试包的构建。
到目前为止,这是阻止我迁移到 Android Studio 和 gradle 的问题。一旦我克服了这个问题,我想我就可以把所有东西都移过去了,所以我希望有人能帮我解决这个问题!
最佳答案
在选择Generate Signed APK 选项之前,进入Build Variants 窗口并选择Release build variant。 Generate Signed APK 命令采用当前选择的任何构建类型并对其进行签名。在这种情况下,这显然不是您想要的;错误 https://code.google.com/p/android/issues/detail?id=56532在那里要求改进。
关于Android studio - 发布 APK for flavor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21464320/