【发布时间】:2020-01-07 00:45:48
【问题描述】:
我在 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 在我的设备上测试该应用程序时,它运行良好,此问题仅在发布后出现。
【问题讨论】:
-
每台设备都会出现这种情况吗?如果您是第一次从 play-store 安装,场景也一样吗?
-
是的,适用于所有用户的所有设备,并且首先安装。我认为这可能与 Launcher 意图有关,由于某种原因无法正常工作
-
这很奇怪。您的代码看起来不错。您可以发布完整的 gradle 和清单文件吗?
-
你好尝试根据answer分割意图
-
@Sohan 我用完整的清单和 gradle 代码更新了我的答案。