Нет виртуального метода getLongVersionCode () J в классе Landroid / content / pm / PackageInfo - PullRequest
4 голосов
/ 07 октября 2019

В Google Play это ошибка

ФАКТИЧЕСКОЕ ИСКЛЮЧЕНИЕ: main Процесс: com.sonymobile.scan3d, PID: 13877 java.lang.NoSuchMethodError: Нет виртуального метода getLongVersionCode ()J в классе Landroid / content / pm / PackageInfo;или его суперклассы (объявление 'android.content.pm.PackageInfo' отображается в /system/framework/framework.jar) на com.sonymobile.scan3d.ZipResourceManager.initializeExpansionFilePath (ZipResourceManager.java:100) на com.sonymobile.scan3.ZipResourceManager. (ZipResourceManager.java:113) по адресу com.sonymobile.scan3d.ZipResourceManager.init (ZipResourceManager.java:65) по адресу com.sonymobile.scan3d.Scan3DApp.onCreate (Scan3DApp.jroid:appInstru.callApplicationOnCreate (Instrumentation.java:1119) в android.app.ActivityThread.handleBindApplication (ActivityThread.java:5822) в android.app.ActivityThread.-wrap1 (неизвестный источник: 0) в android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1666) на android.os.Handler.dispatchMessage (Handler.java:105) на android.os.Looper.loop (Looper.java:251) на android.app.ActivityThread.main (ActivityThread.java:6572) на java.lang.reflect.Method.invoke (собственный метод) на com.android.internal.os.Zygote $ MethodAndArgsCaller.run (Zygote.java:240)на com.android.internal.os.ZygoteInit.main (ZygoteInit.java:767)

показывать только на тесте устройства Xperia XZ1 Compact (Android 8.0) ... Я думаю, что эта проблема только беспокоит меняпо всему миру, помогите мне, я не знаю, что делать с этой ошибкой

defaultConfig {

    applicationId "xxxx.xxxxx.xxxxx"
    minSdkVersion 16
    targetSdkVersion 28
    versionCode 23
    versionName "3.3"
    multiDexEnabled true
}
buildTypes {
    release {
        shrinkResources true
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}
dependencies {

    implementation 'com.google.android.gms:play-services-ads:18.2.0'
    implementation 'com.google.firebase:firebase-analytics:17.2.0'
    implementation 'com.android.billingclient:billing:2.0.3'
    implementation 'androidx.annotation:annotation:1.1.0'
}

Ответы [ 2 ]

1 голос
/ 07 октября 2019

Согласно документации getLongVersionCode () , метод был добавлен на уровне API 28, т. Е. На Android 9, поэтому ожидается, что этот метод не существует на устройствах Android 8.

Последняя версия AndroidX Core содержит метод PackageInfoCompat.getLongVersionCode(PackageInfo), который работает на всех уровнях API.

0 голосов
/ 12 октября 2019

Я тоже получаю эту ошибку, могу предположить, что она связана с методом:

public static boolean isPackageInstalled(PackageManager pm, String packageName) {
        try {
            pm.getPackageInfo(packageName, 0);
        } catch (PackageManager.NameNotFoundException e) {
            return false;
        }
        return true;
}

Но я не нашел решения этой проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...