尝试将第一个apk上传到GooglePlay控制台中最近创建的项目时,收到此错误:
您无法上传仅测试APK
根据今天的搜索情况,Google会为我提供0个完整字符串的结果。
我还提交了Play Console的票证。如果有任何答案,将在这里更新。
2017年11月29日更新
正如@ paul-lammertsma建议的那样,有一种解决方法。仍然很高兴知道为什么我们需要采用gradle方式,我们不能通过IDE做到这一点。
答案 0 :(得分:48)
通过Android Studio 3.0及更高版本构建应用程序会将--
添加到您的应用程序清单中,将Package标记为FLAG_TEST_ONLY
。 More information on CommonsBlog here.
尝试在Android Studio之外安装此类APK将失败:
无法安装app-debug.apk:失败[INSTALL_FAILED_TEST_ONLY:installPackageLI]
尝试将其上传到Google Play也会失败,其中包括:
您无法上传仅测试APK
有四种解决方案:
只需从Android Studio的“Build”菜单中选择“Build APK(s)”即可。
只需从Android Studio的“Build”菜单中选择“Generate Signed APK ...”即可。提供密钥库并在显示的对话框中输入签名详细信息。
您当然可以直接从终端执行Gradle。此外,如果您的部署周期贯穿CI(它应该!),这真的是要走的路!
android:testOnly="true"
(或者,您可能更喜欢从Android Studio中的Gradle窗格运行此Gradle任务。)
如果您不喜欢此行为,可以选择将此标记添加到./gradlew assembleRelease
。请注意,测试标志是为了您自己的保护,因此您不会意外地发布仅测试APK!
gradle.properties
答案 1 :(得分:8)
看起来我发现了一些非常相关的东西: ADB Install Fails With INSTALL_FAILED_TEST_ONLY
我正在使用2.4.0-alpha6 gradle插件,而且似乎还没有准备好用于制作。
所以解决方案是使用最新的稳定gradle插件:
classpath 'com.android.tools.build:gradle:2.3.1'
答案 2 :(得分:8)
单击Build然后按BuildAPK(s)然后上传它将起作用。 android studio 3.0上的即时运行APK仅在连接到adb的设备上运行。
答案 3 :(得分:4)
我发现这个博客解决了“仅测试”错误的原因
https://commonsware.com/blog/2017/10/31/android-studio-3p0-flag-test-only.html
基本上,有两点需要注意:您无法通过常规方式安装带有android:testOnly =“true”的应用,例如来自Android文件管理器或从网站下载
Android Studio 3.0在从IDE运行的APK上设置android:testOnly =“true”
当您使用绿色运行按钮编译发布版本时,android studio 3.0现在设置此“testOnly”标志(make project CTRL + F9)。
我找到的解决方案是不要调用“make project”,而是调用
答案 4 :(得分:2)
我正在使用 Android Studio 3.1 Canary 5
我曾尝试过(但没有尝试过):
./gradlew assembleRelease
在所有可能性之后我通过以下方式获得解决方案:
- 编译SDK版本已从 Android P 更改为 Android Oreo 27
- 将 AppCompat 版本更改为27.0.1
现在已成功运作。
谢谢。
答案 5 :(得分:-1)
对我有用。尝试运行此文件并重新构建。 ./ gradlew assembleRelease
也许您上传的是错误的apk文件,该文件先前生成的不是经过签名的apk。因此,请通过找到生成的签名apk文件的确切路径来选择apk文件。