Tencent / tinker

Tinker is a hot-fix solution library for Android, it supports dex, library and resources update without reinstall apk.
Other
17.11k stars 3.33k forks source link

release模式打补丁失败,already has a mapping #1521

Open po1arbear opened 3 years ago

po1arbear commented 3 years ago

Issue/提问须知

异常类型:app运行时异常/编译异常

手机型号:如:xiaomi 10(如是编译异常,则可以不填)

手机系统版本:如:Android 5.0 (如是编译异常,则可以不填)

tinker版本:如:3.5.3

gradle版本:如:6.1.1

是否使用热更新SDK: 如 TinkerPatch SDK

系统:如:Mac

release模式下,基准包会生成mapping.txt文件,基准包中含有mapping.txt文件时会报这个错,删除mapping.txt,只留R.txt和.apk文件作为基准包能正常生成补丁. 怀疑是R8导致的,尝试关闭R8也不行,会报其他错误

堆栈/日志:

:app:transformClassesAndResourcesWithR8ForPublishRelease
Missing class: com.amap.api.services.poisearch.PoiSearch$OnPoiSearchListener
Missing class: com.amap.api.services.route.RouteSearch$OnRouteSearchListener
The rule `-keep class * extends android.os.IInterface {
  *;
}` uses extends but actually matches implements.
The rule `-keepclassmembers class * implements javax.net.ssl.SSLSocketFactory {
  private final javax.net.ssl.SSLSocketFactory delegate;
}` uses implements but actually matches extends.
The rule `-keep class * extends android.os.IInterface {
  *;
}` uses extends but actually matches implements.
The rule `-keepclassmembers class * implements javax.net.ssl.SSLSocketFactory {
  private final javax.net.ssl.SSLSocketFactory delegate;
}` uses implements but actually matches extends.
'android.support.v4.app.INotificationSideChannel asInterface(android.os.IBinder)' already has a mapping
'boolean onTransact(int,android.os.Parcel,android.os.Parcel,int)' already has a mapping
'void cancel(java.lang.String,int,java.lang.String)' already has a mapping
'void cancelAll(java.lang.String)' already has a mapping
'void <init>(android.content.Context,android.content.ComponentName,android.support.v4.media.MediaBrowserCompat$ConnectionCallback,android.os.Bundle)' already has a mapping
'void search(java.lang.String,android.os.Bundle,android.support.v4.media.MediaBrowserCompat$SearchCallback)' already has a mapping
'void sendCustomAction(java.lang.String,android.os.Bundle,android.support.v4.media.MediaBrowserCompat$CustomActionCallback)' already has a mapping
'void subscribe(java.lang.String,android.os.Bundle,android.support.v4.media.MediaBrowserCompat$SubscriptionCallback)' already has a mapping
'void handleMessage(android.os.Message)' already has a mapping
'void <init>()' already has a mapping
'void onConnected()' already has a mapping
'void onConnectionFailed()' already has a mapping
'void <init>(android.content.Context,android.content.ComponentName,android.support.v4.media.MediaBrowserCompat$ConnectionCallback,android.os.Bundle)' already has a mapping
'void disconnect()' already has a mapping
'void getItem(java.lang.String,android.support.v4.media.MediaBrowserCompat$ItemCallback)' already has a mapping
'android.support.v4.media.session.MediaSessionCompat$Token getSessionToken()' already has a mapping
'void onConnected()' already has a mapping
'void onLoadChildren(android.os.Messenger,java.lang.String,java.util.List,android.os.Bundle,android.os.Bundle)' already has a mapping
'void search(java.lang.String,android.os.Bundle,android.support.v4.media.MediaBrowserCompat$SearchCallback)' already has a mapping
'void sendCustomAction(java.lang.String,android.os.Bundle,android.support.v4.media.MediaBrowserCompat$CustomActionCallback)' already has a mapping
'void subscribe(java.lang.String,android.os.Bundle,android.support.v4.media.MediaBrowserCompat$SubscriptionCallback)' already has a mapping
'void <init>(android.content.Context,android.content.ComponentName,android.support.v4.media.MediaBrowserCompat$ConnectionCallback,android.os.Bundle)' already has a mapping
'void connect()' already has a mapping
'void forceCloseConnection()' already has a mapping
'android.os.Bundle getExtras()' already has a mapping
'void getItem(java.lang.String,android.support.v4.media.MediaBrowserCompat$ItemCallback)' already has a mapping
'java.lang.String getRoot()' already has a mapping
'android.content.ComponentName getServiceComponent()' already has a mapping
'android.support.v4.media.session.MediaSessionCompat$Token getSessionToken()' already has a mapping
'boolean isCurrent(android.os.Messenger,java.lang.String)' already has a mapping
'void onConnectionFailed(android.os.Messenger)' already has a mapping
'void onLoadChildren(android.os.Messenger,java.lang.String,java.util.List,android.os.Bundle,android.os.Bundle)' already has a mapping
'void onServiceConnected(android.os.Messenger,java.lang.String,android.support.v4.media.session.MediaSessionCompat$Token,android.os.Bundle)' already has a mapping
'void search(java.lang.String,android.os.Bundle,android.support.v4.media.MediaBrowserCompat$SearchCallback)' already has a mapping

@tomystang 谢谢大佬帮忙看下

lingbaeryi-strong commented 3 years ago

+1