tinker load failed
异常类型:app运行时异常
手机型号:如:Nexus 5(如是编译异常,则可以不填)
手机系统版本:如:Android 7.1.2(模拟器)
tinker版本:如:1.9.9(compile 'com.tencent.tinker:tinker-android-lib:1.9.9')
gradle版本:如:4.10.2
是否使用热更新SDK: TinkerPatch SDK
系统:如:win10
问题描述:app集成了热更新,但是启动的时候没有上报baseid信息,提示tinker load failed。下面是启动日志 2021-12-01 10:49:12.137 4406-4406/? D/houdini: [4406] Initialize library(version: 7.1.1b_x.49852 RELEASE)... successfully. 2021-12-01 10:49:12.138 4406-4406/? W/art: Unexpected CPU variant for X86 using defaults: x86 2021-12-01 10:49:12.169 4406-4406/com.sunny.yjjh_management.debug W/Tinker.TinkerLoader: tryLoadPatchFiles:patch dir not exist:/data/user/0/com.sunny.yjjh_management.debug/tinker 2021-12-01 10:49:12.169 4406-4406/com.sunny.yjjh_management.debug D/Tinker.DefaultAppLike: onBaseContextAttached: 2021-12-01 10:49:12.169 4406-4406/com.sunny.yjjh_management.debug I/Tinker.ReflectApp: with app realApplication from manifest applicationName:com.sunny.yjjh_management.application.SampleApplication 2021-12-01 10:49:12.170 4406-4406/com.sunny.yjjh_management.debug W/Tinker.TinkerLoader: tryLoadPatchFiles:patch dir not exist:/data/user/0/com.sunny.yjjh_management.debug/tinker 2021-12-01 10:49:12.171 4406-4406/com.sunny.yjjh_management.debug D/Tinker.DefaultAppLike: onBaseContextAttached: 2021-12-01 10:49:12.172 4406-4406/com.sunny.yjjh_management.debug I/Tinker.TinkerPatchListener: application maxMemory:128 2021-12-01 10:49:12.172 4406-4406/com.sunny.yjjh_management.debug W/Tinker.Tinker: tinker patch directory: /data/user/0/com.sunny.yjjh_management.debug/tinker 2021-12-01 10:49:12.172 4406-4406/com.sunny.yjjh_management.debug I/Tinker.Tinker: try to install tinker, isEnable: true, version: 1.9.9 2021-12-01 10:49:12.173 4406-4406/com.sunny.yjjh_management.debug I/Tinker.TinkerLoadResult: parseTinkerResult loadCode:-2, process name:com.sunny.yjjh_management.debug, main process:true, systemOTA:false, fingerPrint:HUAWEI/TAS-AN00/TAS-AN00:7.1.2/TAS-AN00/700210421:user/release-keys, oatDir:null, useInterpretMode:false 2021-12-01 10:49:12.173 4406-4406/com.sunny.yjjh_management.debug W/Tinker.TinkerLoadResult: can't find patch file, is ok, just return 2021-12-01 10:49:12.173 4406-4406/com.sunny.yjjh_management.debug I/Tinker.DefaultLoadReporter: patch loadReporter onLoadResult: patch load result, path:/data/user/0/com.sunny.yjjh_management.debug/tinker, code: -2, cost: 0ms 2021-12-01 10:49:12.173 4406-4406/com.sunny.yjjh_management.debug W/Tinker.Tinker: tinker load fail! 2021-12-01 10:49:12.181 4406-4406/com.sunny.yjjh_management.debug E/Tinker.ReflectApp: replaceApplicationLike delegateClass:class com.tencent.bugly.beta.tinker.TinkerApplicationLike
集成方式代码 public class SampleApplication extends TinkerApplication { public SampleApplication() { super(ShareConstants.TINKER_ENABLE_ALL, "com.jupitarwp.myapplication.application.SampleApplicationLike", "com.tencent.tinker.loader.TinkerLoader", false); } }
public class SampleApplicationLike extends DefaultApplicationLike {
public static final String TAG = "Tinker.SampleApplicationLike";
private final Handler myHandler = new Handler();
public SampleApplicationLike(Application application, int tinkerFlags,
boolean tinkerLoadVerifyFlag, long applicationStartElapsedTime,
long applicationStartMillisTime, Intent tinkerResultIntent) {
super(application, tinkerFlags, tinkerLoadVerifyFlag, applicationStartElapsedTime, applicationStartMillisTime, tinkerResultIntent);
}
@Override
public void onCreate() {
super.onCreate();
// // 设置是否开启热更新能力,默认为true // Beta.enableHotfix = true; // // 设置是否自动下载补丁,默认为true // Beta.canAutoDownloadPatch = true; // // 设置是否自动合成补丁,默认为true // Beta.canAutoPatch = true; // // 设置是否提示用户重启,默认为false // Beta.canNotifyUserRestart = true; // 这里实现SDK初始化,appId替换成你的在Bugly平台申请的appId // 调试时,将第三个参数改为true intBugly();
}
@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
@Override
public void onBaseContextAttached(Context base) {
super.onBaseContextAttached(base);
// you must install multiDex whatever tinker is installed!
MultiDex.install(base);
// 安装tinker
// TinkerManager.installTinker(this); 替换成下面Bugly提供的方法
Beta.installTinker(this);
}
@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
public void registerActivityLifecycleCallback(Application.ActivityLifecycleCallbacks callbacks) {
getApplication().registerActivityLifecycleCallbacks(callbacks);
}
private void intBugly() {
CrashReport.initCrashReport(getApplication(), "1fa4f76ec9", true);
}
}
配置文件代码:
<application
android:allowBackup="true"
android:name=".application.SampleApplication"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.MyApplication">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.tencent.bugly.beta.ui.BetaActivity"
android:configChanges="keyboardHidden|orientation|screenSize|locale"
android:theme="@android:style/Theme.Translucent" />
</application>