Android Studio签名APK - 从一台PC上运行,在另一台PC上运行

时间:2017-04-25 13:15:27

标签: android apk proguard signing

我总是使用当前的笔记本电脑构建已签名的APK,没有任何问题。但是,最后签名的APK是从另一台PC构建的,我的PC上的每个签名的apk现在都可以正常运行,但是使用“assertionError:impossible”会被我在应用程序中使用的不同库抛出而崩溃。

现在,每当我构建一个签名的apk时,它在打开应用程序时崩溃。但是,当它在另一台PC上构建时,它可以完美运行。我们都使用V1 / V2签名和应用程序的发布版本。

我们正在使用git而另一台PC正在拉动,因此两台机器之间没有代码差异。唯一的区别可能是配置,但是,我们在签署APK时使用相同的。

请注意,当应用程序从其他计算机进行签名时,proguard规则正常工作,但是从我的计算机构建时,它们似乎被忽略(可能),即使我使用了正确的风格和构建类型这只是在其他机器签署APK时才开始发生,没有任何代码更改。

编辑:这是我得到的崩溃的堆栈跟踪示例: (请注意,崩溃并不总是来自滑动。有时quickblox,有时甚至支持库会抛出此异常)

Fatal Exception: java.lang.AssertionError: impossible
       at java.lang.Enum$1.create(Enum.java:45)
       at java.lang.Enum$1.create(Enum.java:36)
       at libcore.util.BasicLruCache.get(BasicLruCache.java:54)
       at java.lang.Enum.getSharedConstants(Enum.java:211)
       at java.util.EnumSet.noneOf(EnumSet.java:48)
       at java.util.EnumSet.of(EnumSet.java:152)
       at java.util.EnumSet.of(EnumSet.java:172)
       at java.util.EnumSet.of(EnumSet.java:194)
       at com.bumptech.glide.load.resource.bitmap.Downsampler.(Downsampler.java)
       at com.bumptech.glide.load.resource.bitmap.StreamBitmapDecoder.(StreamBitmapDecoder.java)
       at com.bumptech.glide.load.resource.bitmap.StreamBitmapDataLoadProvider.(StreamBitmapDataLoadProvider.java)
       at com.bumptech.glide.Glide.(Glide.java)
       at com.bumptech.glide.GlideBuilder.createGlide(GlideBuilder.java:203)
       at com.bumptech.glide.Glide.get(Glide.java:155)
       at com.bumptech.glide.RequestManager.(RequestManager.java)
       at com.bumptech.glide.RequestManager.(RequestManager.java)
       at com.bumptech.glide.manager.RequestManagerRetriever.supportFragmentGet(RequestManagerRetriever.java:198)
       at com.bumptech.glide.manager.RequestManagerRetriever.get(RequestManagerRetriever.java:104)
       at com.bumptech.glide.manager.RequestManagerRetriever.get(RequestManagerRetriever.java:87)
       at com.bumptech.glide.Glide.with(Glide.java:629)

0 个答案:

没有答案