我已切换到发布构建变体并配置了signingConfigs。现在,当我尝试从下拉菜单中检查调试版本变体时,它立即切换回发布版本变体。因此,我无法再以调试模式运行我的应用程序。
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
apply plugin: 'realm-android'
android {
signingConfigs {
config {
...
}
}
compileSdkVersion rootProject.compileSdkVersion
buildToolsVersion rootProject.buildToolsVersion
defaultConfig {
applicationId "com.kost.foo"
minSdkVersion rootProject.minSdkVersion
targetSdkVersion rootProject.targetSdkVersion
versionCode 2
versionName "1.1"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
ndk {
abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
}
externalNativeBuild {
cmake {
...
}
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
debuggable true
signingConfig signingConfigs.config
}
}
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
main {
jniLibs.srcDirs = ['src/main/jni']
}
}
externalNativeBuild {
cmake {
path 'src/main/jni/CMakeLists.txt'
}
}
}
kapt {
generateStubs = true
}
repositories {
maven { url 'https://github.com/linchaolong/stetho-realm/raw/master/maven-repo' }
mavenCentral()
}
我尝试在配置之前恢复build.gradle中的所有更改,但没有运气。
如何解决问题?
答案 0 :(得分:13)
'与Gradle文件同步项目'没有修复。
我注意到Android Studio(v 3.1.2)左下角的'Build Variants'切换按钮,最终能够选择我需要的变体。
也许这对你也有用。
答案 1 :(得分:7)
只需剪切“.idea”文件夹并将其粘贴到Project根文件夹之外(如果需要,备份)。这些文件将自动重新生成。在打开项目时,它会向你的项目询问添加模块(app)。你可以忽略它。
将set default build variant设置为“debug”。 您可以在左下角看到构建变量选项卡,或者将鼠标悬停在左下角的“Monitor”符号上以获取构建变体选项。
答案 2 :(得分:6)
也许你已经得到了解决方案,以防万一,我在这里提供我的解决方案。
适用于Android Studio 2.x
这可能是因为您使用以下方法编译您的依赖项目:
compile project('module_a')
以上设置将强制您的项目编译模块的发布版本。只需将其更改为:
releaseCompile project(path: ':module_a', configuration: 'release')
debugCompile project(path: ':module_a', configuration: 'debug')
适用于Android Studio 3.x
您无需为“模块项目”显式指定构建变体。只是使用
implementation project(':library')
将自动帮助选择正确的构建变体。
以下是详细说明:https://developer.android.com/studio/build/?utm_source=android-studio#variant_aware
适用于Android Studio 3.x从2.x升级
删除项目根目录下的.idea
文件夹,然后重新启动Android Studio。
以下是GUI屏幕截图:
希望它有所帮助!
答案 3 :(得分:3)
我遇到了同样的问题。通过关闭Android Studio解决此问题,删除生成的文件和文件夹:-type
,.gradle
,.idea
,app/.externalNativeBuild
,app/build
,build
, app/app.iml
,ProjectName.iml
,然后重新启动Android Studio并允许它从头开始重新生成所有这些文件。
答案 4 :(得分:3)
遇到同样的问题,解决了创建一个新的临时Build Type,Build>编辑构建类型,选择构建类型并添加新类型。同步,然后您可以选择新的构建类型,然后恢复为原始的Debug构建类型。
答案 5 :(得分:1)
对我来说,我无法切换到我们的devDebug'变种,但我可以切换到另一个变体,如'devRelease'然后是'devDebug'。因此,首先尝试切换到另一个变体。
答案 6 :(得分:1)
打开您的模块设置。 (点击F4)
转到构建类型并通过单击加号(+)来创建新的构建。
将其命名为“demo”。
复制调试版本的所有数据。
现在,当您打开Build Variant时,您将能够切换到Debug和Demo。
答案 7 :(得分:1)
我遇到了类似的问题。我的模块级别build.gradle反映了相应地为“调试”和“发布”指定的配置。在构建和签名我的应用程序的发行版本之前,我能够在模拟器和设备(LG)上成功运行我的应用程序。构建并签署发布版本并尝试在手机和设备上运行签署的APK之后,我收到了错误PM Session 'mobile': Error Launching activity....Error while Launching activity
。因此,我开始追踪步骤,意识到在部署签名的发行版本之前,我打开了运行/调试配置对话框
并错误地从安装类别下的 Deploy 属性中选择了来自应用程序捆绑包的值 APK 值
我在整个APK中签名了我的APK,而不是通过捆绑软件 ,因此选择的选项是尝试部署从未生成过的无效应用捆绑软件,甚至是否适用于正确的 Build Variant 。
答案 8 :(得分:0)
我也有这个问题。我的解决方案是结帐到我更改了构建变体的分支。在那个分支,我可以从发布版更改为调试版。然后只需结帐到当前分支,一切正常。这似乎是一个Android Studio错误。
答案 9 :(得分:0)
英语不是我的母语;请原谅输入错误。
我也遇到这种情况。我这样做是为了解决。
Solv:
1.删除each module's
impl 后缀类型文件和 build 文件夹;
2.然后单击此按钮将项目与Gradle构建文件同步。 button position
最后。然后这个问题将得到解决。
答案 10 :(得分:0)
我解决了以下问题:
答案 11 :(得分:0)
在Linux上的符号链接位置打开项目时,似乎会出现此问题。打开项目直接为我解决了这个问题。
答案 12 :(得分:0)
对我来说,这是gradle版本的问题。确保您的插件版本和所需的gradle版本符合此处定义。
https://developer.android.com/studio/releases/gradle-plugin
您可以在以下位置找到正在使用的gradle版本:
文件->项目结构...->项目
答案 13 :(得分:0)
我尝试了以上所有方法,但没有任何效果。最终由于其他原因,偶然发现File> Invalidate Caches / Restart ...,发现它对我有用。
答案 14 :(得分:0)
在build.gradle中的应用主根目录中
将其替换为:
dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'
}
在我的情况下为我的Android Studio v3.0.1:
dependencies {
classpath 'com.android.tools.build:gradle:3.0.1'
}
答案 15 :(得分:0)
2021 年 3 月 26 日: 不会从 Release 切换到 Debug, 档案 |无效缓存为我修复了它
答案 16 :(得分:-2)
与build.gradle文件无关,
分享希望它可以帮助别人 -
我遇到了类似的问题,因为build.gradle中的一行 -
android {
...
publishNonDefault true // remove this line and it should work!
}
Here您可以获得有关publishNonDefualt的更多详细信息 -
也可以发布库的所有变体。我们计划在使用正常的项目到项目依赖关系时允许这样做(如上所示),但由于Gradle的限制(我们正在努力修复这些),目前这是不可能的。 默认情况下不启用所有变体的发布。下面的代码段启用了此功能: