Google Play: не удается установить приложение, ошибка 504 (INSTALL_PARSE_FAILED_MANIFEST_MALFORMED) - PullRequest
0 голосов
/ 25 марта 2019

У меня есть приложение, которое было загружено в Google Play. Проблема в том, что он не хочет устанавливать на некоторые устройства, например Samsung J7. Другое дело, что у меня есть два одинаковых устройства (Gionee S Plus), у одного рутирован Android 7.0, на котором приложение работает нормально, а другое на Android 6.0, но приложение не хочет устанавливать. Когда я пытаюсь установить приложение на второе устройство напрямую с помощью apk, я получаю:

Ошибка разбора

При синтаксическом анализе пакета

И когда я пытаюсь установить его из Магазина, я получаю:

Не удается установить приложение

Без другого четкого сообщения. После поиска этой проблемы я обнаружил, что мне нужно кое-что сделать:

  • Очистка данных и кеша Google Play & services: не работает
  • перезагрузить телефон: не работал
  • Удаление обновлений Google Play: при попытке установить старую версию выдается то же сообщение об ошибке, но на этот раз я получил сообщение об ошибке 504 . Когда я искал эту ошибку, я прочитал, что должен полностью удалить все свои учетные записи Google, что я и сделал, но все еще та же проблема.

Я сомневался, что это явная проблема, и я декомпилировал apk, но он выглядит нормально.

Manifest.xml в Android Studio:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.myapp">

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />

    <application
        android:name="com.myapp.MainApplication"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher"
        android:supportsRtl="true"
        android:theme="@style/PurpeTheme">
        <meta-data
            android:name="com.onesignal.NotificationOpened.DEFAULT"
            android:value="DISABLE" />

        <activity android:name="com.myapp.ActivitySplash">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

        <activity android:name="com.myapp.ActivityHome" />

        <activity android:name="com.myapp.ActivityTrack"/>
        <activity android:name="com.myapp.ActivityEqualizer" />
        <activity android:name="com.myapp.ActivityAboutUs" />
        <activity android:name="com.myapp.ActivitySettings" />

        <service android:name="com.myapp.services.ServicePlayer" />
        <service android:name="com.myapp.services.DownloadService" />

        <activity android:name="com.myapp.ActivityFavorites" />
        <activity android:name="com.myapp.ActivityPrivacyPolicy" />

        <meta-data
            android:name="com.google.android.gms.ads.APPLICATION_ID"
            android:value="@string/admob_app_id" />

        <meta-data
            android:name="firebase_crashlytics_collection_enabled"
            android:value="${crashlyticsEnabled}" />
    </application>

</manifest>

уровень приложения build.gradle

apply plugin: 'com.onesignal.androidsdk.onesignal-gradle-plugin'
apply plugin: 'com.android.application'
apply plugin: 'io.objectbox'
apply plugin: 'io.fabric'

android {

    compileSdkVersion 28

    defaultConfig {
        applicationId "com.myapp"
        minSdkVersion 16
        targetSdkVersion 28
        versionCode 3
        versionName "1.2"
        multiDexEnabled true
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        vectorDrawables.useSupportLibrary = true
    }

    buildTypes {
        release {
            minifyEnabled false
            signingConfig signingConfigs.config
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            manifestPlaceholders = [crashlyticsEnabled: true]
        }

        debug {
            manifestPlaceholders = [crashlyticsEnabled: false]
        }
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}


dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    implementation 'androidx.appcompat:appcompat:1.1.0-alpha03'
    implementation 'com.google.android.material:material:1.1.0-alpha04'
    implementation 'androidx.cardview:cardview:1.0.0'
    implementation 'com.google.android.gms:play-services-ads:17.2.0'
    implementation 'de.hdodenhof:circleimageview:2.1.0'
    implementation 'jp.wasabeef:blurry:2.1.1'
    implementation 'com.sothree.slidinguppanel:library:3.3.0'
    implementation 'com.nabinbhandari.android:permissions:3.5'
    implementation 'com.orhanobut:dialogplus:1.11@aar'
    implementation 'com.diogobernardino:williamchart:2.5.0'
    implementation 'com.h6ah4i.android.widget.verticalseekbar:verticalseekbar:0.7.2'
    implementation 'com.sdsmdg.harjot:croller:1.0.7'
    implementation 'com.ToxicBakery.viewpager.transforms:view-pager-transforms:1.2.32@aar'
    implementation 'com.google.code.gson:gson:2.8.2'
    implementation 'com.squareup.retrofit2:retrofit:2.3.0'
    implementation 'com.squareup.retrofit2:converter-gson:2.0.2'
    implementation 'com.github.bumptech.glide:glide:4.7.1'
    implementation 'com.wang.avi:library:2.1.3'
    implementation 'androidx.multidex:multidex:2.0.1'
    implementation 'jp.wasabeef:glide-transformations:3.3.0'
    implementation 'com.codemybrainsout.rating:ratingdialog:1.0.8'
    implementation 'com.github.varunest:sparkbutton:1.0.5'
    implementation 'com.onesignal:OneSignal:[3.9.1, 3.99.99]'
    implementation 'com.google.android.gms:play-services-analytics:16.0.8'
    testImplementation 'junit:junit:4.12'

    implementation 'com.google.firebase:firebase-core:16.0.8'
    implementation 'com.crashlytics.sdk.android:crashlytics:2.9.9'

}

apply plugin: 'com.google.gms.google-services'

Обновление:

Я получаю INSTALL_PARSE_FAILED_MANIFEST_MALFORMED при попытке установить приложение из Android Studio на некоторые устройства. Я нашел решение, и оно подробно описано в моем ответе ниже.

1 Ответ

0 голосов
/ 25 марта 2019

На самом деле проблема была в имени пакета, по-видимому, некоторые устройства и некоторые версии Android (Android 6.0) не принимают заглавную букву в качестве начала имени пакета.И под названием пакета я имею в виду структуру файла вашего проекта, а не идентификатор приложения.

Вот что я получил, когда попробовал приложение с эмулятором, и что помогло мне найти проблему:

enter image description here

...