android - Android 应用更新 - 从 Google Play 下载后无法打开
问题描述
我在 Google Play 商店中有一个应用程序,它运行良好,直到我最后一次更新。现在,当用户从 Google Play 下载新更新的应用程序时,它可以正确安装,但在任何地方都找不到任何图标,并且无法启动该应用程序。同样在 Google play 中没有打开按钮,只有卸载。当我在我的设备中查看我的应用程序列表时,该应用程序在那里,但无法启动。
我在那里做的唯一一件事是 - 我添加到清单到意图过滤器<data android:scheme="geo" />
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="***">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<application
android:allowBackup="false"
android:supportsRtl="false"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher"
android:theme="@style/Theme.AppCompat.NoActionBar">
<meta-data
android:name="com.google.firebase.messaging.default_notification_icon"
android:resource="@mipmap/ic_notify" />
<meta-data
android:name="com.google.firebase.messaging.default_notification_color"
android:resource="@color/colorPrimaryDark" />
<meta-data
android:name="com.google.firebase.messaging.default_notification_channel_id"
android:value="@string/default_notification_channel_id" />
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="android.intent.action.VIEW" />
<data android:scheme="geo" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".Novinky"
android:label="Novinky"
android:parentActivityName=".MainActivity"
android:screenOrientation="portrait"
android:theme="@style/AppTheme" />
<activity
android:name=".Search"
android:label="Search"
android:screenOrientation="portrait"
android:theme="@style/AppTheme" />
<activity
android:name=".Zoznam"
android:label="Zoznam"
android:screenOrientation="portrait"
android:theme="@style/AppTheme" />
<activity
android:name=".Visited"
android:label="Visited"
android:screenOrientation="portrait"
android:theme="@style/AppTheme" />
<activity
android:name=".Okoli"
android:label="V okoli"
android:parentActivityName=".MainActivity"
android:screenOrientation="portrait"
android:theme="@style/AppTheme" />
<activity
android:name=".SingleitemView"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:theme="@style/AppTheme" />
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="@string/google_maps_key" />
<activity
android:name=".MapsActivity"
android:label="Mapy"
android:theme="@style/AppTheme" />
<activity
android:name=".AkcieActivity"
android:label="Udalosti"
android:screenOrientation="portrait"
android:theme="@style/AppTheme" />
<activity
android:name=".InfoActivity"
android:screenOrientation="portrait"
android:theme="@style/AppTheme" />
<!-- [START firebase_iid_service] -->
<service
android:name=".MyFirebaseMessagingService"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service> <!-- [END firebase_iid_service] -->
<service
android:name=".MyFirebaseInstanceIDService"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
</intent-filter>
</service>
</application>
</manifest>
我更新的第二件事是我的 graddle 文件忽略了语言的拆分:
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
android {
compileSdkVersion 29
defaultConfig {
applicationId "***"
minSdkVersion 23
targetSdkVersion 29
versionCode 11
versionName "2.01"
ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
bundle {
language {
enableSplit = false
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.0.2'
implementation "androidx.preference:preference:1.1.0-rc01"
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'com.google.android.gms:play-services-maps:17.0.0'
testImplementation 'junit:junit:4.12'
implementation 'com.google.firebase:firebase-core:17.1.0'
implementation 'com.google.firebase:firebase-analytics:17.1.0'
implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1'
implementation 'com.google.firebase:firebase-messaging:20.0.0'
androidTestImplementation 'androidx.test:runner:1.2.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
implementation 'com.squareup.picasso:picasso:2.5.2'
implementation 'com.google.android.material:material:1.0.0'
}
apply plugin: 'com.google.gms.google-services'
我怀疑,意图过滤器中新添加的地理方案可能会导致这个或 enableSplit 选项,但我不确定。当我通过 Android Studio 在我的设备上测试该应用程序时,它运行良好,此问题仅在发布后出现。
解决方案
我不确定这是否可行。但是您可以尝试使用两种不同的意图过滤器,如下所示:-
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<data android:scheme="geo" />
</intent-filter>
</activity>
编辑:--我刚刚注意到@Trix 也提出了同样的建议。
推荐阅读
- redhat - 带有 QLogic BCM57xx 的 RedHat 7.4 服务器上的 FCoE 未检测到 SAN
- php - 具有权限的 PHP 会话
- sql-server - 插入并选择给出重复键违规
- python - 带有 open() 错误 22(Windows 路径)
- c - Linux:简单 C 程序的缓冲区溢出给 SIGBUS
- ruby-on-rails - 如何将 ActiveRecord 模型属性从 json 迁移到 jsonb?
- c# - “OnCollisionEnter()”中的协程 (WaitForSeconds()) 给出编译错误
- javascript - 更新现有文档字段而不丢失 Couch DB 中的旧文档数据
- mongodb - 如何在mongodb中将时间戳转换为日期?
- google-chrome - 一旦 chrome 和 webview 更新,就会陷入(承诺)DOMException