Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 生成签名的apk找不到公共超类_Android_Android Gradle Plugin_Signed Apk - Fatal编程技术网

Android 生成签名的apk找不到公共超类

Android 生成签名的apk找不到公共超类,android,android-gradle-plugin,signed-apk,Android,Android Gradle Plugin,Signed Apk,我正在尝试为我的应用程序生成已签名的apk,但每次尝试生成时都会出现此错误: 找不到[com/google/android/gms/internal/zzata](有1个已知的超类)和[java/lang/String](有2个已知的超类)的通用超类 以前我可以使用不同的密钥库构建签名的apk,但现在我得到的只是这个错误。这看起来像是proguard设置问题,请参阅: 如果缺少的类是从您自己的代码中引用的,那么您可能忘记指定一个基本库。就像从头开始编译所有代码一样,必须直接或间接指定代码引用的所

我正在尝试为我的应用程序生成已签名的apk,但每次尝试生成时都会出现此错误:

找不到[com/google/android/gms/internal/zzata](有1个已知的超类)和[java/lang/String](有2个已知的超类)的通用超类


以前我可以使用不同的密钥库构建签名的apk,但现在我得到的只是这个错误。

这看起来像是proguard设置问题,请参阅:


如果缺少的类是从您自己的代码中引用的,那么您可能忘记指定一个基本库。就像从头开始编译所有代码一样,必须直接或间接指定代码引用的所有库。如果要处理库并将其包含在输出中,则应使用
-injars
指定库,否则应使用
-libraryjars
指定库。看起来我发现了问题所在。在我的应用程序
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' }

上面提到的错误是,在
googlegms
名称空间中找不到库引用。原来这是因为我在
'com.google.android.gms:play services analytics:12.0.1'
服务中使用的版本。我刚刚将版本从
12.0.1
更改为
15.0.0
,就像其他库一样,然后它工作并生成我的签名APK。感谢所有帮助,我希望这可以帮助任何有同样问题的人。

您的apk版本的proguard设置如何?如果您需要,我可以发布proguard文件及其设置。今天早些时候,它一直在工作,直到我因为忘记密码而更改了密钥库。从proguard设置中删除
-dontwarn
会抑制关于未解析引用的警告,这样您就可以获得更详细的错误/警告日志。好的,我现在就这样做并发布结果。我正在使用一个Cocos2DX项目,如果这会有什么不同的话,只是它在前面生成了一个apk,并且没有任何变化,除了一个不同的keystorecheck,看看它是否有帮助:您可以将依赖项合并成一个
dependencies{}
并将所有
编译
更改为
实现
,以获得较新的gradle插件版本。