Android:如何禁用调试上传apk

问题描述 投票:0回答:7

当我尝试在 Google Play 中上传我的应用程序时,出现此错误。

上传失败

您上传了可调试的 APK。出于安全原因,您 需要禁用调试才能在 Google Play 中发布。 了解有关可调试 APK 的更多信息。

我使用 Android Studio 0.4.0 编译我的应用程序

我尝试在我的 Manifest.xml 中设置它 -

Android:debuggable="false"
,但什么也没发生。 当我尝试在 .iml 文件中设置这个
 <option name="SOURCE_GEN_TASK_NAME" value="generateReleaseSources" />
时,又什么也没有。

我尝试在 build.gradle 中使用它,但还是什么也没有。

android {
    signingConfigs {
        debug {
            storeFile file("horoskopSms.jks")
            storePassword "1q2w3e"
            keyAlias "horoskopSms"
            keyPassword "1q2w3e"
        }
    }
}

我的.iml 文件

<?xml version="1.0" encoding="UTF-8"?>
<module external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$/.." external.system.id="GRADLE"    type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="android" name="Android">
  <configuration>
    <option name="SELECTED_BUILD_VARIANT" value="debug" />
    <option name="ASSEMBLE_TASK_NAME" value="assembleDebug" />
    <option name="COMPILE_JAVA_TASK_NAME" value="compileDebugJava" />
    <option name="ASSEMBLE_TEST_TASK_NAME" value="assembleDebugTest" />
    <option name="SOURCE_GEN_TASK_NAME" value="generateReleaseSources" />
    <option name="ALLOW_USER_CONFIGURATION" value="false" />
    <option name="MANIFEST_FILE_RELATIVE_PATH" value="/src/main/AndroidManifest.xml" />
    <option name="RES_FOLDER_RELATIVE_PATH" value="/src/main/res" />
    <option name="RES_FOLDERS_RELATIVE_PATH" value="file://$MODULE_DIR$/src/main/res" />
    <option name="ASSETS_FOLDER_RELATIVE_PATH" value="/src/main/assets" />
    <option name="APK_PATH" value="/build/apk/HoroskopSms-debug-unaligned.apk" />
  </configuration>
</facet>
     <facet type="android-gradle" name="Android-Gradle">
     <configuration>
     <option name="GRADLE_PROJECT_PATH" value=":HoroskopSms" />
  </configuration>
</facet>
  </component>
           <component name="NewModuleRootManager" inherit-compiler-output="false">
        <output url="file://$MODULE_DIR$/build/classes/debug" />
      <exclude-output />
     <content url="file://$MODULE_DIR$">
   <sourceFolder url="file://$MODULE_DIR$/build/source/r/debug" isTestSource="false" />
  <sourceFolder url="file://$MODULE_DIR$/build/source/aidl/debug" isTestSource="false" />

<sourceFolder url="file://$MODULE_DIR$/build/source/buildConfig/debug"         isTestSource="false" />
 <sourceFolder url="file://$MODULE_DIR$/build/source/rs/debug" isTestSource="false" />
     <sourceFolder url="file://$MODULE_DIR$/build/res/rs/debug" type="java-resource" />
  <sourceFolder url="file://$MODULE_DIR$/build/source/r/test/debug" isTestSource="true" />
  <sourceFolder url="file://$MODULE_DIR$/build/source/aidl/test/debug" isTestSource="true" />
  <sourceFolder url="file://$MODULE_DIR$/build/source/buildConfig/test/debug" isTestSource="true" />
  <sourceFolder url="file://$MODULE_DIR$/build/source/rs/test/debug" isTestSource="true" />
  <sourceFolder url="file://$MODULE_DIR$/build/res/rs/test/debug" type="java-test-resource" />
  <sourceFolder url="file://$MODULE_DIR$/src/debug/aidl" isTestSource="false" />
  <sourceFolder url="file://$MODULE_DIR$/src/debug/assets" isTestSource="false" />
  <sourceFolder url="file://$MODULE_DIR$/src/debug/java" isTestSource="false" />
  <sourceFolder url="file://$MODULE_DIR$/src/debug/jni" isTestSource="false" />
  <sourceFolder url="file://$MODULE_DIR$/src/debug/rs" isTestSource="false" />
  <sourceFolder url="file://$MODULE_DIR$/src/debug/res" type="java-resource" />
  <sourceFolder url="file://$MODULE_DIR$/src/debug/resources" type="java-resource" />
  <sourceFolder url="file://$MODULE_DIR$/src/main/aidl" isTestSource="false" />
  <sourceFolder url="file://$MODULE_DIR$/src/main/assets" isTestSource="false" />
  <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
  <sourceFolder url="file://$MODULE_DIR$/src/main/jni" isTestSource="false" />
  <sourceFolder url="file://$MODULE_DIR$/src/main/rs" isTestSource="false" />
  <sourceFolder url="file://$MODULE_DIR$/src/main/res" type="java-resource" />
  <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
  <sourceFolder url="file://$MODULE_DIR$/src/instrumentTest/aidl" isTestSource="true" />
  <sourceFolder url="file://$MODULE_DIR$/src/instrumentTest/assets" isTestSource="true" />
  <sourceFolder url="file://$MODULE_DIR$/src/instrumentTest/java" isTestSource="true" />
  <sourceFolder url="file://$MODULE_DIR$/src/instrumentTest/jni" isTestSource="true" />
  <sourceFolder url="file://$MODULE_DIR$/src/instrumentTest/rs" isTestSource="true" />
  <sourceFolder url="file://$MODULE_DIR$/src/instrumentTest/res" type="java-test-resource" />
  <sourceFolder url="file://$MODULE_DIR$/src/instrumentTest/resources" type="java-test-resource" />
  <excludeFolder url="file://$MODULE_DIR$/build/apk" />
  <excludeFolder url="file://$MODULE_DIR$/build/assets" />
  <excludeFolder url="file://$MODULE_DIR$/build/bundles" />
  <excludeFolder url="file://$MODULE_DIR$/build/classes" />
  <excludeFolder url="file://$MODULE_DIR$/build/dependency-cache" />
  <excludeFolder url="file://$MODULE_DIR$/build/incremental" />
  <excludeFolder url="file://$MODULE_DIR$/build/libs" />
  <excludeFolder url="file://$MODULE_DIR$/build/manifests" />
  <excludeFolder url="file://$MODULE_DIR$/build/res" />
  <excludeFolder url="file://$MODULE_DIR$/build/symbols" />
  <excludeFolder url="file://$MODULE_DIR$/build/tmp" />
</content>
<orderEntry type="jdk" jdkName="Android API 19 Platform" jdkType="Android SDK" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" exported="" name="support-v4-19.0.0" level="project" />
<orderEntry type="library" exported="" name="ComAndroidSupportAppcompatV71900.aar" level="project" />
<orderEntry type="library" exported="" name="FortumoInApp-android-9.1.0" level="project" />
</component>
       </module>
android debugging upload android-studio
7个回答
37
投票

我在Android Studio中找到了一个解决方案,我进入“构建变体”并将其从debbug更改为release。


5
投票

您可以在

debuggable
文件的构建类型中设置一个
build.gradle
属性;这将取代清单中的任何设置。你在那里什么也没做,是吗?您的发布版本的可调试属性应该已经是 false。

您想将哪个版本上传到 Google Play?如果您要上传调试版本,那么这就是您的问题 - 请上传发布版本。


4
投票

您不应使用 debug 作为 BuildVariant 在 Google Play 中签名和导出您的 apk。

您应该使用ReleaseBuildVariant。 Gradle 有一些默认值,作为可调试的,您必须在 build.gradle 中覆盖它们(这些值覆盖 AndroidManifest 中的属性)。

更改你的build.gradle,切换到Release as BuildVariant(在左侧边缘)并导出你的apk。

android {
    signingConfigs {
        release {
            storeFile file("horoskopSms.jks")
            storePassword "1q2w3e"
            keyAlias "horoskopSms"
            keyPassword "1q2w3e"
        }
   }
}

2
投票

这段代码对我有用

将 debuggable false 和 minifyEnabled false 更改为 true,如应用程序级别 build.gradle 文件中的以下代码

 buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        debuggable false
        signingConfig signingConfigs.firstapp
    }
}

1
投票

这是因为你没有正确配置你的gradle。请检查此链接 http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Signing-Configurations


0
投票

打开AndroidManifest.xml文件

在应用程序节点下查找

android:debuggable="true"

将其设置为 false

谢谢你


-1
投票

在 Android studio 上,只需单击“构建”,然后选择“生成签名的 Apk”...输入您的凭据和与您的应用程序相关的其他信息,然后就完成了。

© www.soinside.com 2019 - 2024. All rights reserved.