Не удается переустановить подписанный APK, созданный в Android Studio 3.2 - PullRequest
0 голосов
/ 03 декабря 2018

Я успешно создал подписанный APK и установил его на свое устройство.Затем я удаляю приложение (Настройки -> Диспетчер приложений -> MyApp -> Удалить) и пытаюсь установить его снова.Во второй раз, когда я пытаюсь установить его, я получаю «Приложение не установлено» со следующей трассировкой стека:

12-03 14:37:12.785 834-859/? E/Parcel: Class not found when unmarshalling: com.android.packageinstaller.InstallFlowAnalytics
    java.lang.ClassNotFoundException: com.android.packageinstaller.InstallFlowAnalytics
        at java.lang.Class.classForName(Native Method)
        at java.lang.Class.forName(Class.java:324)
        at android.os.Parcel.readParcelableCreator(Parcel.java:2404)
        at android.os.Parcel.readParcelable(Parcel.java:2358)
        at android.os.Parcel.readValue(Parcel.java:2264)
        at android.os.Parcel.readArrayMapInternal(Parcel.java:2614)
        at android.os.BaseBundle.unparcel(BaseBundle.java:221)
        at android.os.BaseBundle.getString(BaseBundle.java:920)
        at android.content.Intent.getStringExtra(Intent.java:6183)
        at com.android.server.am.ActivityStackSupervisor.startActivityLocked(ActivityStackSupervisor.java:2695)
        at com.android.server.am.ActivityStackSupervisor.startActivityMayWait(ActivityStackSupervisor.java:2157)
        at com.android.server.am.ActivityManagerService.startActivityAsUser(ActivityManagerService.java:6333)
        at com.android.server.am.ActivityManagerService.startActivity(ActivityManagerService.java:6111)
        at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:170)
        at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:3983)
        at android.os.Binder.execTransact(Binder.java:453)
     Caused by: java.lang.ClassNotFoundException: com.android.packageinstaller.InstallFlowAnalytics
        at java.lang.Class.classForName(Native Method)
        at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
        at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
        at java.lang.Class.classForName(Native Method) 
        at java.lang.Class.forName(Class.java:324) 
        at android.os.Parcel.readParcelableCreator(Parcel.java:2404) 
        at android.os.Parcel.readParcelable(Parcel.java:2358) 
        at android.os.Parcel.readValue(Parcel.java:2264) 
        at android.os.Parcel.readArrayMapInternal(Parcel.java:2614) 
        at android.os.BaseBundle.unparcel(BaseBundle.java:221) 
        at android.os.BaseBundle.getString(BaseBundle.java:920) 
        at android.content.Intent.getStringExtra(Intent.java:6183) 
        at com.android.server.am.ActivityStackSupervisor.startActivityLocked(ActivityStackSupervisor.java:2695) 
        at com.android.server.am.ActivityStackSupervisor.startActivityMayWait(ActivityStackSupervisor.java:2157) 
        at com.android.server.am.ActivityManagerService.startActivityAsUser(ActivityManagerService.java:6333) 
        at com.android.server.am.ActivityManagerService.startActivity(ActivityManagerService.java:6111) 
        at android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:170) 
        at com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:3983) 
        at android.os.Binder.execTransact(Binder.java:453) 
     Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available

Если я увеличу versionCode и повторю процесс, я снова смогу установитьприложение в первый раз, но оно не работает, чтобы удалить его и установить его снова.

Я уже пробовал это на 3 разных устройствах.Я попытался подписать только с помощью «V1 (Jar signature)» И также попытался подписать V1 и V2.

Как решить эту проблему?

Обновление 0: при первой попыткеустановить (это единственный раз, когда я могу), он показывает всплывающее окно «Заблокировано Play Protect» с опцией «УСТАНОВИТЬ ЛЮБОЙ», который я использую.

1 Ответ

0 голосов
/ 03 декабря 2018

Только что нашел проблему.Виновником является Play Protect.Если я отключу его, то смогу переустановить приложение.В противном случае произойдет сбой.

Я действительно считаю, что это ошибка в Play Protect, потому что при первой установке приложения он спрашивает, хочу ли я заблокировать или установить приложение в любом случае, а на следующемпопытка установить приложение (тот же versionCode) просто блокирует установку.

...