создание подписанного apk не может найти общий суперкласс - PullRequest
2 голосов
/ 27 марта 2019

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

Не удается найти общий суперкласс [com / google / android / gms / internal / zzata] (с 1 известным суперклассом) и [java / lang / String] (с 2 известными суперклассами)

Мне раньше удавалось создавать подписанные apk с использованием разных хранилищ ключей, но теперь все, что я получаю, это ошибка.

Ответы [ 2 ]

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

Похоже, я нашел в чем проблема.В моем build gradle для приложения мои зависимости были перечислены так:

dependencies {
        implementation fileTree(include: ['*.jar'], dir: 'libs')
        implementation project(':libcocos2dx')

    }
    //dependencies { compile 'com.google.android.gms:play-services-ads:15.0.1' }
    dependencies { compile 'com.google.android.gms:play-services-analytics:12.0.1' }
    dependencies { compile 'com.google.android.gms:play-services-auth:15.0.0' }
    dependencies { compile 'com.google.android.gms:play-services-games:15.0.0' }
    dependencies { compile 'com.google.android.gms:play-services-drive:15.0.0' }

Ошибка, которую я получал выше, заключалась в том, что не удалось найти ссылку на библиотеку в пространстве имен google gms.оказывается, это из-за версий, которые я использовал для службы 'com.google.android.gms:play-services-analytics:12.0.1'.Я просто изменил версию с 12.0.1 на 15.0.0, как и остальные библиотеки, и она сработала и сгенерировал мой подписанный APK.Спасибо всем, кто помог, и я надеюсь, что это может помочь любому, кто имеет такую ​​же проблему.

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

Это похоже на проблему с настройкой Proguard, см .: Предупреждение: не удается найти суперкласс или интерфейс .

Если на отсутствующий класс есть ссылка из вашего собственного кода, вы, возможно, забыли указать необходимую библиотеку. Как и при компиляции всего кода с нуля, вы должны указать все библиотеки, на которые ссылается код, прямо или косвенно. Если библиотека должна быть обработана и включена в вывод, вы должны указать ее с помощью -injars, в противном случае вы должны указать ее с помощью -libraryjars.

...