关于在 Google Play 控制台上推出应用程序的问题,包括关于 `aewt` 和 `UID` 和 SDK、API 版本的问题
Posted
技术标签:
【中文标题】关于在 Google Play 控制台上推出应用程序的问题,包括关于 `aewt` 和 `UID` 和 SDK、API 版本的问题【英文标题】:Questions on rolling-out app on Google Play Console which includes questions on `aewt` and `UID` and SDK, API versions 【发布时间】:2021-04-07 11:07:16 【问题描述】:亲爱的 android 开发者天才们,
在 Google Play 管理中心推出我的应用时,我需要帮助。我偶然发现了一系列问题,这些问题看起来像是第 22 条问题。我已经开始使用内部测试推出我的应用程序,很快我发现当我收到预发布报告时,我的应用程序触发了两个错误,我被告知这将阻止我继续推出,直到它们得到修复。这两个错误是:
`java.lang.SecurityException: Calling from not trusted UID!`
和
`java.lang.NoClassDefFoundError: aewt`
我已经在这个平台和其他地方进行了研究,并找到了一些我尝试修复的可能解决方案。然后我重建另一个包并将其上传到内部测试但无济于事,这些问题仍然存在。
我按照这个链接尝试解决问题aewt
https://***.com/questions/64706041/fatal-exception-firebase-messaging-intent-handle-java-lang-noclassdeffounder
这解决了UID!
问题
Calling from not trusted UID
都没有用。
然后我恍然大悟,这些问题出现在 android 5 及以下的旧版本的 Android 上。所以我决定将我的应用程序的使用限制在 android 6.0 及更高版本。我几乎不知道这也将成为一项令人困惑的任务。而且我一头雾水。
我按照此处的说明进行操作:[https://developer.android.com/training/basics/supporting-devices/platforms] 并将建议的代码添加到我的应用程序中。但在这里,它再次不起作用,我能够在运行 Android 5.0 及更低版本的模拟器上运行我的应用程序。
我使用的第一个代码是这样的:
`<manifest xmlns:android="http://schemas.android.com/apk/res/android" ...>
<uses-sdk android:minSdkVersion="6" android:targetSdkVersion="15" />
...
</manifest>`.
但是,我不知道什么是 SDK 版本。是操作系统版本吗?还是API版本?或者也许是另一组我在网上找不到参考的数字。我知道这个问题在这个平台上已经讨论了很长时间,但我仍然找不到正确的答案。无论如何,我已经尝试了使用 OS 版本和 API 版本组合的所有合理可能性,但它们似乎都没有阻止我的应用在旧的 Android 版本上运行。
我也将此代码添加到 MainActivity:
`private void setUpActionBar()
// Make sure we're running on Marshmallow or higher to use ActionBar APIs
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
ActionBar actionBar = getActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
`
但是,我的应用很高兴在旧操作系统上运行
这里是我的问题的回顾。我在推出我的应用程序时收到错误消息,这似乎无法解决,这使我无法继续推出我的应用程序。将我的应用分发限制在 OS 6.0 及更高版本的尝试也失败了。
我现在该怎么办?
-
尝试在生产轨道上推出我的应用并希望获得最好的结果?
SDK 编号是 OS 编号还是 API,还是两者都不是?
是否有另一种方法可以告诉 Android 不要安装在旧版本上?请帮忙!
【问题讨论】:
【参考方案1】:SDK 版本是 API 版本。示例 OS 版本 6.0 是 API 版本 23
因此,如果您只希望您的应用在操作系统版本 6.0+ 上运行,请将 build.gradle(模块)文件中的 minSdkVersion
设置为 23(参见第 10 行)
apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'
android
compileSdkVersion 30
buildToolsVersion "29.0.3"
defaultConfig
applicationId "your.package.name"
minSdkVersion 23
targetSdkVersion 30
multiDexEnabled true
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
这是最重要的。在 manifest.xml 文件中设置它是可以的,但这才是真正重要的。
编辑:
此外,不需要在 manifest.xml 文件中指定 minSdkVersion
和 targetSdkVersion
;但是,如果要指定它,则需要确保 manifest.xml 文件和 gradle.build 文件具有相同的设置。
<uses-sdk android:minSdkVersion="23" android:targetSdkVersion="30" />
【讨论】:
以上是关于关于在 Google Play 控制台上推出应用程序的问题,包括关于 `aewt` 和 `UID` 和 SDK、API 版本的问题的主要内容,如果未能解决你的问题,请参考以下文章
我无法在 Google Play 控制台上重置敏感应用权限声明