尽管设置为 targetSDK 31,但 Flutter App 无法从 Google 商店为 Android 12 安装
Posted
技术标签:
【中文标题】尽管设置为 targetSDK 31,但 Flutter App 无法从 Google 商店为 Android 12 安装【英文标题】:Flutter App not installable from Google store for Android 12 despite being set to targetSDK 31 【发布时间】:2021-12-22 03:07:44 【问题描述】:我在 Playstore 中有一个 Flutter 应用,如果你有 android 12,它只会弹出一条错误消息: “无法安装 AppName”
我的 Flutter 版本是 2.5.0
由于我的设置,我希望该应用可以安装在 Android 12 上。这可能会失败还有其他原因吗?
这是我的 build.grade:
def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists())
localPropertiesFile.withReader('UTF-8') reader ->
localProperties.load(reader)
def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null)
throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null)
flutterVersionCode = '25'
def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null)
flutterVersionName = '1.1.0'
def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists())
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
// apply plugin: 'com.google.gms.google-services'
android
compileSdkVersion 31
sourceSets
main.java.srcDirs += 'src/main/kotlin'
lintOptions
disable 'InvalidPackage'
defaultConfig
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "myAppID"
minSdkVersion 21
targetSdkVersion 31
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
signingConfigs
release
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
storePassword keystoreProperties['storePassword']
buildTypes
release
signingConfig signingConfigs.release
//signingConfig signingConfigs.debug
minifyEnabled true
useProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
debug
minifyEnabled true
useProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
flutter
source '../..'
dependencies
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
//def multidex_version = "2.0.1"
//implementation 'androidx.multidex:multidex:$multidex_version'
implementation 'com.android.support:multidex:1.0.3'
apply plugin: 'com.google.gms.google-services'
颤振医生:
在 Android 12 模拟器上安装它,安装失败并显示以下消息:
在我将这个值作为 true 添加到我的 appmanifest 之后,我再次启动它,我在 Visual Studio 代码中看到了一个无穷无尽的安装加载图标。我的设备上有应用程序,但点击后它会立即关闭
【问题讨论】:
您是否尝试通过运行以下命令在 Android 12 设备上以发布模式安装您的应用:flutter run --release 并通过日志提供帖子 同样的事情发生在我身上+1 你有什么线索吗? 我刚刚创建了一个新项目并逐渐将我的文件移过来以解决这个问题。这样压力小得多,我只花了 40 分钟左右 【参考方案1】:您必须将 android:exported 设置为在应用程序的 AndroidManifest.xml 文件中声明了
https://medium.com/androiddevelopers/lets-be-explicit-about-our-intent-filters-c5dbe2dbdce0
【讨论】:
谢谢,但我们有这么多插件无法添加导出值,我该怎么办,把它们全部搞定并修改它? 我会将所有有问题的软件包更新到最新版本。如果您仍然遇到问题,我会手动更新它们,但请确保您在此之后不要调用“pub clear cache”,因为您将撤消所有手动更改。 根据您在开发过程中所处的位置,您还可以从您的 pub 缓存中复制包并将其放入您的项目文件夹并在那里进行修改。您所要做的就是将您的 pubspec.yaml 依赖项指向flutter_chat_types: path: ./flutter_chat_types-3.1.2_HIJACKED
。这将防止您的更改被 dart 生态系统修改。这需要更多的工作,但会为您的项目提供更多的安全性。以上是关于尽管设置为 targetSDK 31,但 Flutter App 无法从 Google 商店为 Android 12 安装的主要内容,如果未能解决你的问题,请参考以下文章
尽管在响应标头中将 iframe 选项设置为 Sameorigin,但允许其他站点嵌入视频
尽管我以编程方式选择了一个单元格,但 indexPathForSelectedRow 返回 nil