地图开发——腾讯地图混淆::app:shrinkReleaseMultiDexComponents

这些天在搞腾讯地图,当混淆的时候出现了一个问题:

Error:Execution failed for task ':app:shrinkReleaseMultiDexComponents'.
> java.io.IOException: The output jar [E:\winjia\Android\AndroidHelperJump\app\build\intermediates\multi-dex\release\componentClasses.jar] must be specified after an input jar, or it will be empty.

出问题了,说是有多个Dex组建,但是在build.gradle中已经配置了multiDexEnabled=true,这是怎么回事呢。仔细看看最后一行解释:must be specified after an input jar, or it will be empty.应该是因为部分jar包没有引入,导致jar为空的问题。在来看看混淆的代码:

#Tencent map sdk
-libraryjars libs/TencentLocationSDK_v5.0.1.jar
-keep class com.tencent.**{*;}

#腾讯地图 2D sdk
-libraryjars libs/TencentMapSDK_Raster_v_1.2.6_160cf1b.jar
-keep class com.tencent.mapsdk.**{*;}
-keep class com.tencent.tencentmap.**{*;}

#腾讯地图 3D sdk
-libraryjars libs/TencentMapSDK_Raster_v_1.2.6_160cf1b.jar
-keep class com.tencent.tencentmap.**{*;}
-keep class com.tencent.map.**{*;}

#腾讯地图检索sdk
-libraryjars libs/TencentSearch1.1.3.jar
-keep class com.tencent.lbssearch.**{*;}
-keep class com.google.gson.examples.android.model.** { *; }

#腾讯地图街景sdk
#如果街景混淆报出类似"java.io.IOException: Can't read [*\TencentPanoramaSDKv1.1.0_15232.jar"
#请参考http://bbs.map.qq.com/forum.php?mod=viewthread&tid=21098&extra=page=1&filter=typeid&typeid=95&typeid=95
-libraryjars libs/TencentPanoramaSDK_v.1.2.0_16324.jar
-keep class com.tencent.tencentmap.streetviewsdk.**{*;}

在我的项目里,并没有使用到街景sdk和3Dsdk,直接把这几个jar的混淆注释掉,然后再看看,然后添加以下混淆代码:

-keepclassmembers class ** {
    public void on*Event(...);
}
-keepclasseswithmembernames class * {
  native <methods>;
}
-dontwarn  org.eclipse.jdt.annotation.**
-dontwarn android.location.Location
-dontwarn ct.**
-dontwarn com.tencent.**

官网论坛上说只有api 18以下的需要加这些代码,不知道为啥,不加的话,发布版本混淆会失败,加入这些代码之后,方可混淆成功。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值