android - 升级到 Gradle 3 后应用消失

标签 android android-gradle-plugin google-play android-launcher

我将我的 Android 应用程序的新版本发布到 Play 商店供 Beta 测试人员使用。测试人员能够更新/安装新版本,但之后该应用程序不会显示在设备上的任何位置。 Play 商店也只有卸载选项(而大多数应用程序都有“打开”选项)。

此推送包括将应用程序升级到 Gradle 3,因此我假设问题可能与此有关。

很抱歉,如果在我找不到任何类似的帖子之前有人问过这个问题。 感谢您的帮助!

这是我的一些 Gradle(*编辑出私有(private)信息):

def bbBuildNumber = "4";
if (project.hasProperty('BUDDYBUILD_BUILD_NUMBER')) {
    bbBuildNumber = project.properties['BUDDYBUILD_BUILD_NUMBER'];
}

android {
    signingConfigs {
        prodConfig {
            keyAlias '**** development'
            keyPassword '****'
            storeFile file('*******')
            storePassword '****'
        }
        devconfig {
            keyAlias 'key1'
            keyPassword '****'
            storeFile file('*******')
            storePassword '****'
        }
    }
    compileSdkVersion 26
    buildToolsVersion "25.0.2"
    defaultConfig {
        applicationId '*******'
        minSdkVersion 16
        targetSdkVersion 26
        versionCode 341
        versionName "1.9"
        testInstrumentationRunner "*******"
        buildConfigField "String", "BUILD_NUMBER", "\"${bbBuildNumber}\""
        multiDexEnabled true
    }
    dataBinding {
        enabled = true
    }
    buildTypes {
        debug {
            debuggable true
            buildConfigField "String", "BUILD_NUMBER", "\"${bbBuildNumber}\""
        }
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        targetCompatibility 1.8
        sourceCompatibility 1.8
    }
    dexOptions {
        javaMaxHeapSize "4g" //specify the heap size for the dex process
        preDexLibraries = false //delete the already predexed libraries
    }
    lintOptions {
        abortOnError true
        ignoreWarnings false
        lintConfig file('../config/lint.xml')
    }
    //flavorDimensions "dev", "prod"
    flavorDimensions "prod"
    productFlavors {
//        devConfig {
//            minSdkVersion 16
//            applicationId '*******'
//            targetSdkVersion 26
//            testInstrumentationRunner '******'
//            versionCode 341
//            versionName '1.9'
//            dimension "dev"
//            vectorDrawables.useSupportLibrary = true
//            javaCompileOptions {
//                annotationProcessorOptions {
//                    includeCompileClasspath false
//                }
//            }
//        }
        prodConfig {
            minSdkVersion 16
            applicationId '*********'
            targetSdkVersion 26
            testInstrumentationRunner '******'
            versionCode 341
            versionName '1.9'
            signingConfig signingConfigs.prodConfig
            dimension "prod"
            vectorDrawables.useSupportLibrary = true
            javaCompileOptions {
                annotationProcessorOptions {
                    includeCompileClasspath false
                }
            }
        }
    }
}

这是 list :

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="*******">
    <application
        android:name=".dagger.******"
        android:allowBackup="false"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/****">
        <activity
            android:noHistory="true"
            android:name="****.android.ui.splash.SplashActivity"
            android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>

                <category android:name="android.intent.category.LAUNCHER"/>

                <action android:name="android.intent.action.VIEW"/>
                <category android:name="android.intent.category.DEFAULT"/>
                <category android:name="android.intent.category.BROWSABLE"/>
                <data android:scheme="app" android:host="****.com" />
            </intent-filter>
        </activity>
        <activity
            android:name="com.*.android.ui.MainActivity"
            android:screenOrientation="portrait">

        </activity>
        <activity
            android:name="com.*.android.ui.TabbedActivity"
            android:screenOrientation="portrait">
        </activity>
        <activity
            android:name="com.*.android.ui.forgot.ForgotPasswordActivity"
            android:label="@string/title_forgot_password"
            android:screenOrientation="portrait"
            android:parentActivityName=".ui.MainActivity">
        </activity>
        <activity
            android:name="com.*.android.ui.support.SupportActivity"
            android:label="@string/title_support"
            android:screenOrientation="portrait">
        </activity>
        <activity
            android:name="com.*.android.ui.forgot.ForgotUsernameActivity"
            android:label="@string/title_forgot_username"
            android:screenOrientation="portrait"
            android:parentActivityName=".ui.MainActivity">
        </activity>
        <activity
            android:name="com.*.android.ui.transfer.DoTransferActivity"
            android:screenOrientation="portrait"
            android:label="@string/card_transfer_title"
            android:parentActivityName=".ui.TabbedActivity">
        </activity>
        <activity
            android:name="com.*.android.ui.transfer.bank.BankTransferActivity"
            android:screenOrientation="portrait"
            android:label="@string/bank_transfer_title"
            android:parentActivityName=".ui.TabbedActivity">
        </activity>
        <activity
            android:name="com.*.android.ui.transfer.destination.DestinationPickerActivity"
            android:screenOrientation="portrait"
            android:windowSoftInputMode="stateHidden">
        </activity>

        <activity
            android:name="com.*.android.ui.transfer.amount.AmountPickerActivity"
            android:screenOrientation="portrait"
            android:windowSoftInputMode="stateVisible">
        </activity>

        <activity
            android:name="com.*.android.ui.transfer.confirm.ConfirmationActivity"
            android:screenOrientation="portrait">
        </activity>

        <activity
            android:name="com.*.android.ui.transfer.result.ResultActivity"
            android:screenOrientation="portrait">
        </activity>

        <activity
            android:name="com.*.android.ui.settings.notifications.NotificationsActivity"
            android:screenOrientation="portrait">
        </activity>

        <activity
            android:name="com.*.android.ui.settings.timestamp.TimestampPickerActivity"
            android:screenOrientation="portrait">
        </activity>

        <activity
            android:name="com.*.android.ui.settings.document.DocumentsActivity"
            android:screenOrientation="portrait">
        </activity>

        <activity
            android:name="com.*.android.ui.settings.accounts.BankAccountsActivity"
            android:screenOrientation="portrait"
            android:parentActivityName=".ui.TabbedActivity"
            android:label="@string/bank_accounts_title">
        </activity>

        <activity
            android:name="com.*.android.ui.settings.accounts.EditBankAccountActivity"
            android:screenOrientation="portrait"
            android:parentActivityName=".ui.TabbedActivity"
            android:label="@string/edit_account_title">
        </activity>

        <activity
            android:name="com.*.android.ui.profile.ProfileWebview"
            android:screenOrientation="portrait">
        </activity>

        <activity
            android:name="com.*.android.ui.settings.accounts.AddBankActivity"
            android:screenOrientation="portrait"
            android:parentActivityName=".ui.TabbedActivity"
            android:label="@string/add_account_title">
        </activity>

        <activity android:name="com.*.android.ui.settings.accounts.CurrencyExchangeActivity"
            android:screenOrientation="portrait"
            android:parentActivityName=".ui.TabbedActivity"
            android:label="@string/currency_exchange_title">
        </activity>

        <activity android:name="com.*.android.ui.transfer.cashpickup.CashPickupActivity"
            android:screenOrientation="portrait"
            android:parentActivityName=".ui.TabbedActivity"
            android:label="@string/cash_pickup_title">
        </activity>

        <activity android:name="com.*.android.ui.history.CashPickupDetailsActivity"
            android:screenOrientation="portrait"
            android:parentActivityName=".ui.TabbedActivity"
            android:label="History"
            ></activity>

        <meta-data
            android:name="io.fabric.ApiKey"
            android:value="********" />
    </application>

    <uses-permission
        android:name="android.permission.USE_FINGERPRINT"/>
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.BLUETOOTH"/>
</manifest>

最佳答案

检查您的 list 是否至少有一项 Activity (通常是您的主要 Activity )具有正确的intent-filter,如下所示:

    <activity
        android:name="your.package.YourMainActivity">            
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>

您的主要 Activity 应声明操作主要

<action android:name="android.intent.action.MAIN"/>

类别启动器

<category android:name="android.intent.category.LAUNCHER"/>

如果您的 list 中没有包含类别 LAUNCHER 的 Activity ,则该应用将不会显示在启动器中。

关于android - 升级到 Gradle 3 后应用消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50395737/

相关文章:

android - 在内存中加载大字符串的问题

Android Studio 3.0 beta2

android - Play 商店希望我上传什么文件来证明我没有冒充他人?

android - Google Play 控制台 - 针对不同国家/地区的多个 APK

android - 回收站查看致命异常 : java. lang.ArrayIndexOutOfBoundsException

Android 支持库 v7 Searchview 错误

android - 我的 if 语句不起作用

android - AGP 3.5与Gradle 6兼容吗?

android - 支持的最低 gradle 版本是 4.4。当前版本是 4.1

in-app-purchase - 当用户订购应用内的Google Play应用时,如何设置以接收电子邮件通知?