BuglyDevTeam / Bugly-Android-Demo

Bugly Android SDK 使用例子
Apache License 2.0
811 stars 307 forks source link

implementation 'com.tencent.bugly:crashreport_upgrade:1.5.23' assembleRelease出错 #315

Open iBruCe07 opened 3 years ago

iBruCe07 commented 3 years ago

异常类型 编译异常

手机型号

手机系统版本

Tinker版本

1.9.14.16

gradle版本

5.6.4

系统

Mac

堆栈/日志

bruce@BruCeLus-MacBook-Pro -bugly- % sh gradlew assembleRelease --stacktrace

Configure project :app TinkerSupport Plugin Version: 1.2.3 Requires: Android Plugin for Gradle, Revision 2.0.0 or higher Dependencies: Gradle 2.10 or higher (Current Gradle Version: 5.6.4)

apply plugin: 'com.tencent.tinker.patch' ----------------------tinker build warning ------------------------------------ tinker auto operation: excluding annotation processor and source template from app packaging. Enable dx jumboMode to reduce package size. enable dx jumboMode to reduce package size. disable preDexLibraries to prevent ClassDefNotFoundException when your app is booting. disable archive dex mode so far for keeping dex apply.

tinker will change your build configs: we will add TINKER_ID=null in your build output manifest file /Users/bruce/Workspace/-bugly-/app/build/intermediates/manifests/full/*

if minifyEnabled is true you will find the gen proguard rule file at /Users/bruce/Workspace/-bugly-/app/build/intermediates/tinker_intermediates/tinker_proguard.pro and we will help you to put it in the proguardFiles.

if multiDexEnabled is true you will find the gen multiDexKeepProguard file at /Users/bruce/Workspace/-bugly-/app/build/intermediates/tinker_intermediates/tinker_multidexkeep.pro and we will help you to put it in the MultiDexKeepProguardFile.

if applyResourceMapping file is exist we will build app apk with resource R.txt file if resources.arsc has changed, you should use applyResource mode to build the new apk!

AApt2 is enabled, inject /Users/bruce/Workspace/-bugly-/app/build/intermediates/tinker_intermediates/public.txt into aapt options. ----------------------tinker-support build warning ------------------------------------ if you not set autoBackupApkDir we will auto backup the build file to /Users/bruce/Workspace/-bugly-/app/tinker.

if overrideTinkerPatchConfiguration is true we will override tinker patch configuration,you must use tinker-support's configuration

you will find the gen proguard rule file at build/intermediates/bugly_intermediates/bugly_proguard.pro and we will help you to put it in the proguardFiles.

if enableProxyApplication is true we will replace you real application to TINKER_PATCH_APPLICATION

if autoGenerateTinkerId is true we will auto set base tinkerId as versionName.versionCode, like 1.0.1

------ Tinker Support Override tinkerPatch Configuration ------ tinkerPatch { tinkerEnable = true oldApk = /Users/bruce/Workspace/-bugly-/app/build/bakApk/app-0603-06-20-06/app-release.apk newApk = ignoreWarning = true useSign = true buildConfig { applyMapping = /Users/bruce/Workspace/-bugly-/app/build/bakApk/app-0603-06-20-06/app-release-mapping.txt applyResourceMapping = /Users/bruce/Workspace/-bugly-/app/build/bakApk/app-0603-06-20-06/app-release-R.txt tinkerId = 0603-06-46-12 keepDexApply = false isProtectedApp = false supportHotplugComponent = true } dex { dexMode = jar pattern = [classes.dex, assets/secondary-dex-?.jar] loader = [com.tencent.tinker.loader.] } lib { pattern = [lib//.so] } res { pattern = [res/, r/, assets/, resources.arsc, AndroidManifest.xml] ignoreChange = [assets/_meta.txt] largeModSize = 100 } packageConfig { } sevenZip { zipArtiface = com.tencent.mm:SevenZip:1.1.10 path = } ------ End ------ variantName:Debug new apk path is not valid outputVariantNames:Debug processManifest outputVariantName:Debug variantName:Release new apk path is not valid outputVariantNames:Release processManifest outputVariantName:Release

Task :app:processReleaseManifest /Users/bruce/Workspace/-bugly-/app/src/main/AndroidManifest.xml:41:9-44:64 Warning: activity#com.tencent.bugly.beta.ui.BetaActivity@tools:name was tagged at AndroidManifest.xml:41 to replace other declarations but no other declaration present /Users/bruce/Workspace/-bugly-/app/src/main/AndroidManifest.xml:41:9-44:64 Warning: activity#com.tencent.bugly.beta.ui.BetaActivity@tools:configChanges was tagged at AndroidManifest.xml:41 to replace other declarations but no other declaration present /Users/bruce/Workspace/-bugly-/app/src/main/AndroidManifest.xml:41:9-44:64 Warning: activity#com.tencent.bugly.beta.ui.BetaActivity@tools:theme was tagged at AndroidManifest.xml:41 to replace other declarations but no other declaration present /Users/bruce/Workspace/-bugly-/app/src/main/AndroidManifest.xml:24:9-34:20 Warning: provider#com.tencent.bugly.beta.utils.BuglyFileProvider@tools:name was tagged at AndroidManifest.xml:24 to replace other declarations but no other declaration present /Users/bruce/Workspace/-bugly-/app/src/main/AndroidManifest.xml:24:9-34:20 Warning: provider#com.tencent.bugly.beta.utils.BuglyFileProvider@tools:authorities was tagged at AndroidManifest.xml:24 to replace other declarations but no other declaration present /Users/bruce/Workspace/-bugly-/app/src/main/AndroidManifest.xml:24:9-34:20 Warning: provider#com.tencent.bugly.beta.utils.BuglyFileProvider@tools:exported was tagged at AndroidManifest.xml:24 to replace other declarations but no other declaration present /Users/bruce/Workspace/-bugly-/app/src/main/AndroidManifest.xml:24:9-34:20 Warning: provider#com.tencent.bugly.beta.utils.BuglyFileProvider@tools:grantUriPermissions was tagged at AndroidManifest.xml:24 to replace other declarations but no other declaration present /Users/bruce/Workspace/-bugly-/app/src/main/AndroidManifest.xml Warning: meta-data#android.support.FILE_PROVIDER_PATHS@tools:name was tagged at AndroidManifest.xml:0 to replace other declarations but no other declaration present /Users/bruce/Workspace/-bugly-/app/src/main/AndroidManifest.xml Warning: meta-data#android.support.FILE_PROVIDER_PATHS@tools:resource was tagged at AndroidManifest.xml:0 to replace other declarations but no other declaration present

Task :app:tinkerProcessReleaseManifest tinker add tinker_id_0603-06-46-12 to your AndroidManifest.xml /Users/bruce/Workspace/-bugly-/app/build/intermediates/merged_manifests/release/processReleaseManifest/merged/AndroidManifest.xml tinker add com.myself.commondemo.SampleApplication to dex loader pattern tinker gen AndroidManifest.xml in /Users/bruce/Workspace/-bugly-/app/build/intermediates/tinker_intermediates/merged_manifests/release/processReleaseManifest/merged/AndroidManifest.xml

Task :app:tinkerProcessReleaseResourceId apply resource mapping file /Users/bruce/Workspace/-bugly-/app/build/bakApk/app-0603-06-20-06/app-release-R.txt is illegal, just ignore

Task :app:tinkerSupportProcessReleaseManifest manifestPath: /Users/bruce/Workspace/-bugly-/app/build/intermediates/merged_manifests/release/processReleaseManifest/merged/AndroidManifest.xml app version:3.0.2.1 Remove TINKER_ID tinker_id_0603-06-46-12 append TINKER_ID 3.0.2.1_0603-06-46-12 tinkerSupport add com.myself.commondemo.SampleApplication to dex loader pattern tinkerSupport gen AndroidManifest.xml in build/intermediates/bugly_intermediates/AndroidManifest.xml

Task :app:compileReleaseJavaWithJavac Note: Some input files use or override a deprecated API. Note: Recompile with -Xlint:deprecation for details.

Task :app:tinkerProcessReleaseProguard try update tinker proguard file with /Users/bruce/Workspace/-bugly-/app/build/intermediates/tinker_intermediates/tinker_proguard.pro applymapping file /Users/bruce/Workspace/-bugly-/app/build/bakApk/app-0603-06-20-06/app-release-mapping.txt is illegal, just ignore now proguard files is [/Users/bruce/Workspace/-bugly-/build/intermediates/proguard-files/proguard-android-optimize.txt-3.2.1, /Users/bruce/Workspace/-bugly-/app/proguard-rules.pro, /Users/bruce/Workspace/-bugly-/app/build/intermediates/tinker_intermediates/tinker_proguard.pro]

Task :app:tinkerSupportProcessReleaseProguard try update bugly proguard file with /Users/bruce/Workspace/-bugly-/app/build/intermediates/bugly_intermediates/bugly_proguard.pro auto add bugly proguard config: -dontwarn com.tencent.bugly. -keep public class com.tencent.bugly.{*;} 
-keep class android.support.*{;}

now proguard files is [/Users/bruce/Workspace/-bugly-/build/intermediates/proguard-files/proguard-android-optimize.txt-3.2.1, /Users/bruce/Workspace/-bugly-/app/proguard-rules.pro, /Users/bruce/Workspace/-bugly-/app/build/intermediates/tinker_intermediates/tinker_proguard.pro, /Users/bruce/Workspace/-bugly-/app/build/intermediates/bugly_intermediates/bugly_proguard.pro] ProGuard, version 6.0.3 Reading program jar [/Users/bruce/.gradle/caches/transforms-2/files-2.1/18e621041ab5d8190bab4a05f4cd834d/jars/classes.jar] (filtered) Reading program jar [/Users/bruce/.gradle/caches/transforms-2/files-2.1/8b6113e3c80cdc665937fbe52ecc1db4/jars/classes.jar] (filtered) Reading program jar [/Users/bruce/.gradle/caches/transforms-2/files-2.1/61d9f282534082f6ded2bc1593711aef/jars/classes.jar] (filtered) Reading program jar [/Users/bruce/.gradle/caches/transforms-2/files-2.1/61d9f282534082f6ded2bc1593711aef/jars/libs/r-classes.jar] (filtered) Reading program jar [/Users/bruce/.gradle/caches/transforms-2/files-2.1/1d70f6f020738dedacf8bfe980ace78b/jars/classes.jar] (filtered) Reading program jar [/Users/bruce/.gradle/caches/transforms-2/files-2.1/e89d53e3ff75318ffbb027b649014037/jars/classes.jar] (filtered) Reading program jar [/Users/bruce/.gradle/caches/transforms-2/files-2.1/479692e09ef8a1a4947b19689081db3d/jars/classes.jar] (filtered) Reading program jar [/Users/bruce/.gradle/caches/transforms-2/files-2.1/daa93a466339ccd29140eb6e3807aa5c/jars/classes.jar] (filtered) Reading program jar [/Users/bruce/.gradle/caches/transforms-2/files-2.1/ef567cfb70168590e598c9fe33972532/jars/classes.jar] (filtered) Reading program jar [/Users/bruce/.gradle/caches/transforms-2/files-2.1/369402c3a1f6802a9f0724c42985e1dd/jars/classes.jar] (filtered) Reading program jar [/Users/bruce/.gradle/caches/transforms-2/files-2.1/aa142246619d1b153b0de1ae91e60073/jars/classes.jar] (filtered) Reading program jar [/Users/bruce/.gradle/caches/transforms-2/files-2.1/e7f9cca3cbf4d80c51744f3762512644/jars/classes.jar] (filtered) Reading program jar [/Users/bruce/.gradle/caches/transforms-2/files-2.1/d1d928ce424a34c20c61bf3cb7343aa4/jars/classes.jar] (filtered) Reading program jar [/Users/bruce/.gradle/caches/transforms-2/files-2.1/2f7a663cdc8a16f319037296ed5f97e5/jars/classes.jar] (filtered) Reading program jar [/Users/bruce/.gradle/caches/transforms-2/files-2.1/e5956726b3b5afe03cf69b72d68130fe/jars/classes.jar] (filtered) Reading program jar [/Users/bruce/.gradle/caches/transforms-2/files-2.1/3094fd3a53ca453524ec8a38d69cefe8/jars/classes.jar] (filtered) Reading program jar [/Users/bruce/.gradle/caches/transforms-2/files-2.1/8f9eb2c2c847e66d027f5628a953919b/jars/classes.jar] (filtered) Reading program jar [/Users/bruce/.gradle/caches/transforms-2/files-2.1/5c7d7a83549f6c7e00c292798b5a5526/jars/classes.jar] (filtered) Reading program jar [/Users/bruce/.gradle/caches/transforms-2/files-2.1/1b9db00ecc4f226db17e069713aea749/jars/classes.jar] (filtered) Reading program jar [/Users/bruce/.gradle/caches/transforms-2/files-2.1/7c12fcde782065f2204e5d2da842d3c3/jars/classes.jar] (filtered) Reading program jar [/Users/bruce/.gradle/caches/transforms-2/files-2.1/11a0f3770b3706814bfdf92d8d195a29/jars/classes.jar] (filtered) Reading program jar [/Users/bruce/.gradle/caches/modules-2/files-2.1/com.android.support/collections/28.0.0/c1bcdade4d3cc2836130424a3f3e4182c666a745/collections-28.0.0.jar] (filtered) Reading program jar [/Users/bruce/.gradle/caches/transforms-2/files-2.1/58ddff2b0b99a8f0bc041b419b5734b6/jars/classes.jar] (filtered) Reading program jar [/Users/bruce/.gradle/caches/transforms-2/files-2.1/9caf3566171f1b698ec3a20d892fc7c2/jars/classes.jar] (filtered) Reading program jar [/Users/bruce/.gradle/caches/transforms-2/files-2.1/088fd4d193be5db616104930776b17f0/jars/classes.jar] (filtered) Reading program jar [/Users/bruce/.gradle/caches/transforms-2/files-2.1/975f5d83a72add23846111763ce85f7a/jars/classes.jar] (filtered) Reading program jar [/Users/bruce/.gradle/caches/transforms-2/files-2.1/18b33d1702491c5300711bfeb9c0a3de/jars/classes.jar] (filtered) Reading program jar [/Users/bruce/.gradle/caches/transforms-2/files-2.1/76eb7959b4797000d60594fbbe44bb6d/jars/classes.jar] (filtered) Reading program jar [/Users/bruce/.gradle/caches/transforms-2/files-2.1/a341821ac7e3f42b28d9eaa0bc034078/jars/classes.jar] (filtered) Reading program jar [/Users/bruce/.gradle/caches/transforms-2/files-2.1/90a3bfacc1a4c725dc45a7618cc3086b/jars/classes.jar] (filtered) Reading program jar [/Users/bruce/.gradle/caches/modules-2/files-2.1/android.arch.lifecycle/common/1.1.1/207a6efae6a3555e326de41f76bdadd9a239cbce/common-1.1.1.jar] (filtered) Reading program jar [/Users/bruce/.gradle/caches/transforms-2/files-2.1/b1b023b1f16fbdb7648458aa23650129/jars/classes.jar] (filtered) Reading program jar [/Users/bruce/.gradle/caches/modules-2/files-2.1/android.arch.core/common/1.1.1/e55b70d1f5620db124b3e85a7f4bdc7bd48d9f95/common-1.1.1.jar] (filtered) Reading program jar [/Users/bruce/.gradle/caches/transforms-2/files-2.1/c97d6179c78786037a79d97cdc1026d0/jars/classes.jar] (filtered) Reading program jar [/Users/bruce/.gradle/caches/modules-2/files-2.1/com.android.support/support-annotations/28.0.0/ed73f5337a002d1fd24339d5fb08c2c9d9ca60d8/support-annotations-28.0.0.jar] (filtered) Reading program jar [/Users/bruce/.gradle/caches/transforms-2/files-2.1/02206e462381c3f66aaac9326b159bce/jars/classes.jar] (filtered) Reading program jar [/Users/bruce/.gradle/caches/modules-2/files-2.1/com.tencent.tinker/tinker-commons/1.9.14.16/5dabedf919945019cc04b4e9fea810d27d824cfb/tinker-commons-1.9.14.16.jar] (filtered) Reading program jar [/Users/bruce/.gradle/caches/modules-2/files-2.1/com.tencent.tinker/tinker-android-anno-support/1.9.14.16/467414a964df48b1a7eba7d2e1c43153d77dd501/tinker-android-anno-support-1.9.14.16.jar] (filtered) Reading program jar [/Users/bruce/.gradle/caches/modules-2/files-2.1/com.tencent.tinker/aosp-dexutils/1.9.14.16/9b4423602e22e36dac160a84867876b5a494594e/aosp-dexutils-1.9.14.16.jar] (filtered) Reading program jar [/Users/bruce/.gradle/caches/modules-2/files-2.1/com.tencent.tinker/bsdiff-util/1.9.14.16/4fb01a412d1e7bd21e1099b373b3991e7a1aa2c1/bsdiff-util-1.9.14.16.jar] (filtered) Reading program jar [/Users/bruce/.gradle/caches/modules-2/files-2.1/com.tencent.tinker/tinker-ziputils/1.9.14.16/69c1cf2bed2143c139c132fd9db6097852161c8c/tinker-ziputils-1.9.14.16.jar] (filtered) Reading program directory [/Users/bruce/Workspace/-bugly-/app/build/intermediates/javac/release/compileReleaseJavaWithJavac/classes] (filtered) Reading program jar [/Users/bruce/Workspace/-bugly-/app/build/intermediates/transforms/mergeJavaRes/release/0.jar] (filtered) Reading library jar [/Users/bruce/Library/Android/sdk/platforms/android-29/android.jar] Reading library jar [/Users/bruce/Library/Android/sdk/build-tools/28.0.3/core-lambda-stubs.jar] Note: duplicate definition of library class [java.lang.invoke.CallSite] Note: duplicate definition of library class [java.lang.invoke.LambdaConversionException] Note: duplicate definition of library class [java.lang.invoke.MethodHandle] Note: duplicate definition of library class [java.lang.invoke.MethodHandles$Lookup] Note: duplicate definition of library class [java.lang.invoke.MethodHandles] Note: duplicate definition of library class [java.lang.invoke.MethodType] Reading library jar [/Users/bruce/Library/Android/sdk/platforms/android-29/optional/org.apache.http.legacy.jar] Reading library jar [/Users/bruce/Library/Android/sdk/platforms/android-29/optional/android.car.jar] Reading library jar [/Users/bruce/Library/Android/sdk/platforms/android-29/optional/android.test.mock.jar] Reading library jar [/Users/bruce/Library/Android/sdk/platforms/android-29/optional/android.test.base.jar] Reading library jar [/Users/bruce/Library/Android/sdk/platforms/android-29/optional/android.test.runner.jar] Note: there were 6 duplicate class definitions. (http://proguard.sourceforge.net/manual/troubleshooting.html#duplicateclass) Note: the configuration refers to the unknown class 'android.content.pm.PackageManager$DexModuleRegisterCallback' Note: the configuration refers to the unknown class 'android.content.pm.PackageManager$DexModuleRegisterCallback' Note: android.support.v4.app.NotificationCompatJellybean calls 'Field.getType' Note: com.tencent.tinker.loader.NewClassLoaderInjector calls 'Field.getType' Note: android.support.multidex.MultiDex$V14: can't find dynamically referenced class dalvik.system.DexPathList$Element Note: android.support.v4.app.FragmentTransition: can't find dynamically referenced class android.support.transition.FragmentTransitionSupport Note: android.support.v4.graphics.TypefaceCompatApi24Impl: can't find dynamically referenced class android.graphics.FontFamily Note: android.support.v4.graphics.TypefaceCompatApi26Impl: can't find dynamically referenced class android.graphics.FontFamily Note: android.support.v4.text.ICUCompat: can't find dynamically referenced class libcore.icu.ICU Note: android.support.v4.text.ICUCompat: can't find dynamically referenced class libcore.icu.ICU Note: android.support.v4.widget.TextViewCompat$OreoCallback: can't find dynamically referenced class com.android.internal.view.menu.MenuBuilder Note: android.support.v7.app.ResourcesFlusher: can't find dynamically referenced class android.content.res.ThemedResourceCache Note: com.tencent.bugly.beta.global.a: can't find dynamically referenced class androidx.core.content.FileProvider Note: com.tencent.bugly.beta.tinker.TinkerPatchReflectApplication: can't find dynamically referenced class android.app.ActivityThread Note: com.tencent.bugly.beta.tinker.TinkerPatchReflectApplication: can't find dynamically referenced class android.app.LoadedApk Note: com.tencent.bugly.beta.tinker.TinkerPatchReflectApplication: can't find dynamically referenced class android.app.ActivityThread$PackageInfo Note: com.tencent.bugly.crashreport.common.info.b: can't find dynamically referenced class android.app.ActivityManagerNative Note: com.tencent.tinker.loader.TinkerDexOptimizer$OptimizeWorker: can't find dynamically referenced class android.os.ServiceManager Note: com.tencent.tinker.loader.TinkerDexOptimizer$OptimizeWorker: can't find dynamically referenced class android.content.pm.IPackageManager$Stub Note: com.tencent.tinker.loader.TinkerDexOptimizer$OptimizeWorker: can't find dynamically referenced class android.os.ServiceManager Note: com.tencent.tinker.loader.TinkerDexOptimizer$OptimizeWorker: can't find dynamically referenced class android.content.pm.IPackageManager$Stub Note: com.tencent.tinker.loader.TinkerDexOptimizer$OptimizeWorker: can't find dynamically referenced class android.app.ApplicationPackageManager Note: com.tencent.tinker.loader.TinkerResourcePatcher: can't find dynamically referenced class android.app.ActivityThread Note: com.tencent.tinker.loader.TinkerResourcePatcher: can't find dynamically referenced class android.app.LoadedApk Note: com.tencent.tinker.loader.TinkerResourcePatcher: can't find dynamically referenced class android.app.ActivityThread$PackageInfo Note: com.tencent.tinker.loader.TinkerResourcePatcher: can't find dynamically referenced class android.app.ResourcesManager Note: com.tencent.tinker.loader.hotplug.handler.MHMessageHandler: can't find dynamically referenced class android.app.ActivityManagerNative Note: com.tencent.tinker.loader.hotplug.handler.MHMessageHandler: can't find dynamically referenced class android.app.ActivityThread$H Note: com.tencent.tinker.loader.hotplug.interceptor.ServiceBinderInterceptor: can't find dynamically referenced class android.app.ActivityManagerNative Note: com.tencent.tinker.loader.hotplug.interceptor.ServiceBinderInterceptor: can't find dynamically referenced class android.app.ActivityThread Note: com.tencent.tinker.loader.hotplug.interceptor.ServiceBinderInterceptor: can't find dynamically referenced class android.app.ApplicationPackageManager Note: com.tencent.tinker.loader.hotplug.interceptor.ServiceBinderInterceptor: can't find dynamically referenced class android.os.ServiceManager Note: com.tencent.tinker.loader.shareutil.ShareReflectUtil: can't find dynamically referenced class android.app.ActivityThread Note: com.tencent.tinker.loader.shareutil.ShareTinkerInternals: can't find dynamically referenced class dalvik.system.VMRuntime Note: com.tencent.tinker.loader.shareutil.ShareTinkerInternals: can't find dynamically referenced class android.os.SystemProperties Note: android.support.v4.app.NotificationCompatJellybean accesses a declared field 'icon' dynamically Maybe this is program field 'android.support.asynclayoutinflater.R$id { int icon; }' Maybe this is program field 'android.support.compat.R$id { int icon; }' Maybe this is program field 'android.support.coordinatorlayout.R$id { int icon; }' Maybe this is program field 'android.support.coreui.R$id { int icon; }' Maybe this is program field 'android.support.coreutils.R$id { int icon; }' Maybe this is program field 'android.support.customview.R$id { int icon; }' Maybe this is program field 'android.support.drawerlayout.R$id { int icon; }' Maybe this is program field 'android.support.fragment.R$id { int icon; }' Maybe this is program field 'android.support.graphics.drawable.R$id { int icon; }' Maybe this is program field 'android.support.loader.R$id { int icon; }' Maybe this is program field 'android.support.slidingpanelayout.R$id { int icon; }' Maybe this is program field 'android.support.swiperefreshlayout.R$id { int icon; }' Maybe this is program field 'android.support.v4.app.NotificationCompat$Action { int icon; }' Maybe this is program field 'android.support.v7.appcompat.R$attr { int icon; }' Maybe this is program field 'android.support.v7.appcompat.R$id { int icon; }' Maybe this is program field 'android.support.v7.viewpager.R$id { int icon; }' Maybe this is program field 'com.myself.commondemo.R$attr { int icon; }' Maybe this is program field 'com.myself.commondemo.R$id { int icon; }' Maybe this is library field 'android.R$attr { int icon; }' Maybe this is library field 'android.R$id { int icon; }' Maybe this is library field 'android.app.LauncherActivity$ListItem { android.graphics.drawable.Drawable icon; }' Maybe this is library field 'android.app.Notification { int icon; }' Maybe this is library field 'android.app.Notification$Action { int icon; }' Maybe this is library field 'android.appwidget.AppWidgetProviderInfo { int icon; }' Maybe this is library field 'android.content.pm.PackageItemInfo { int icon; }' Maybe this is library field 'android.content.pm.ResolveInfo { int icon; }' Maybe this is library field 'android.inputmethodservice.Keyboard$Key { android.graphics.drawable.Drawable icon; }' Maybe this is library field 'android.service.notification.Condition { int icon; }' Maybe this is library field 'android.speech.tts.TextToSpeech$EngineInfo { int icon; }' Note: android.support.v4.app.NotificationCompatJellybean accesses a declared field 'title' dynamically Maybe this is program field 'android.support.asynclayoutinflater.R$id { int title; }' Maybe this is program field 'android.support.compat.R$id { int title; }' Maybe this is program field 'android.support.coordinatorlayout.R$id { int title; }' Maybe this is program field 'android.support.coreui.R$id { int title; }' Maybe this is program field 'android.support.coreutils.R$id { int title; }' Maybe this is program field 'android.support.customview.R$id { int title; }' Maybe this is program field 'android.support.drawerlayout.R$id { int title; }' Maybe this is program field 'android.support.fragment.R$id { int title; }' Maybe this is program field 'android.support.graphics.drawable.R$id { int title; }' Maybe this is program field 'android.support.loader.R$id { int title; }' Maybe this is program field 'android.support.slidingpanelayout.R$id { int title; }' Maybe this is program field 'android.support.swiperefreshlayout.R$id { int title; }' Maybe this is program field 'android.support.v4.app.NotificationCompat$Action { java.lang.CharSequence title; }' Maybe this is program field 'android.support.v7.appcompat.R$attr { int title; }' Maybe this is program field 'android.support.v7.appcompat.R$id { int title; }' Maybe this is program field 'android.support.v7.viewpager.R$id { int title; }' Maybe this is program field 'com.myself.commondemo.R$attr { int title; }' Maybe this is program field 'com.myself.commondemo.R$id { int title; }' Maybe this is program field 'com.tencent.bugly.beta.UpgradeInfo { java.lang.String title; }' Maybe this is library field 'android.R$attr { int title; }' Maybe this is library field 'android.R$id { int title; }' Maybe this is library field 'android.app.Notification$Action { java.lang.CharSequence title; }' Maybe this is library field 'android.preference.PreferenceActivity$Header { java.lang.CharSequence title; }' Note: android.support.v4.app.NotificationCompatJellybean accesses a declared field 'actionIntent' dynamically Maybe this is program field 'android.support.v4.app.NotificationCompat$Action { android.app.PendingIntent actionIntent; }' Maybe this is library field 'android.app.Notification$Action { android.app.PendingIntent actionIntent; }' Note: android.support.v4.app.NotificationManagerCompat accesses a method 'checkOpNoThrow(int,int,java.lang.String)' dynamically Note: android.support.v4.app.NotificationManagerCompat accesses a declared field 'OP_POST_NOTIFICATION' dynamically Maybe this is program field 'android.support.v4.app.NotificationManagerCompat { java.lang.String OP_POST_NOTIFICATION; }' Note: android.support.v4.graphics.TypefaceCompatApi24Impl accesses a method 'addFontWeightStyle(java.nio.ByteBuffer,int,java.util.List,int,boolean)' dynamically Note: android.support.v4.graphics.TypefaceCompatApi26Impl accesses a method 'addFontFromAssetManager(android.content.res.AssetManager,java.lang.String,int,boolean,int,int,int,android.graphics.fonts.FontVariationAxis[])' dynamically Note: android.support.v4.graphics.TypefaceCompatApi26Impl accesses a method 'addFontFromBuffer(java.nio.ByteBuffer,int,android.graphics.fonts.FontVariationAxis[],int,int)' dynamically Note: android.support.v4.graphics.TypefaceCompatApi26Impl accesses a method 'freeze()' dynamically Maybe this is library method 'android.icu.text.Collator { android.icu.text.Collator freeze(); }' Maybe this is library method 'android.icu.text.Collator { java.lang.Object freeze(); }' Maybe this is library method 'android.icu.text.DateIntervalInfo { android.icu.text.DateIntervalInfo freeze(); }' Maybe this is library method 'android.icu.text.DateIntervalInfo { java.lang.Object freeze(); }' Maybe this is library method 'android.icu.text.DateTimePatternGenerator { android.icu.text.DateTimePatternGenerator freeze(); }' Maybe this is library method 'android.icu.text.DateTimePatternGenerator { java.lang.Object freeze(); }' Maybe this is library method 'android.icu.text.MessagePattern { android.icu.text.MessagePattern freeze(); }' Maybe this is library method 'android.icu.text.MessagePattern { java.lang.Object freeze(); }' Maybe this is library method 'android.icu.text.RuleBasedCollator { android.icu.text.Collator freeze(); }' Maybe this is library method 'android.icu.text.RuleBasedCollator { java.lang.Object freeze(); }' Maybe this is library method 'android.icu.text.TimeZoneFormat { android.icu.text.TimeZoneFormat freeze(); }' Maybe this is library method 'android.icu.text.TimeZoneFormat { java.lang.Object freeze(); }' Maybe this is library method 'android.icu.text.UnicodeSet { android.icu.text.UnicodeSet freeze(); }' Maybe this is library method 'android.icu.text.UnicodeSet { java.lang.Object freeze(); }' Maybe this is library method 'android.icu.util.Freezable { java.lang.Object freeze(); }' Maybe this is library method 'android.icu.util.TimeZone { android.icu.util.TimeZone freeze(); }' Maybe this is library method 'android.icu.util.TimeZone { java.lang.Object freeze(); }' Note: android.support.v4.graphics.TypefaceCompatApi26Impl accesses a method 'abortCreation()' dynamically Note: android.support.v4.text.ICUCompat accesses a method 'addLikelySubtags(java.util.Locale)' dynamically Maybe this is program method 'android.support.v4.text.ICUCompat { java.lang.String addLikelySubtags(java.util.Locale); }' Note: android.support.v4.text.ICUCompat accesses a method 'addLikelySubtags(java.lang.String)' dynamically Note: android.support.v4.view.KeyEventDispatcher accesses a method 'onMenuKeyEvent(android.view.KeyEvent)' dynamically Maybe this is program method 'android.support.v7.app.ActionBar { boolean onMenuKeyEvent(android.view.KeyEvent); }' Maybe this is program method 'android.support.v7.app.ToolbarActionBar { boolean onMenuKeyEvent(android.view.KeyEvent); }' Note: android.support.v4.widget.TextViewCompat$OreoCallback accesses a declared method 'removeItemAt(int)' dynamically Maybe this is program method 'android.support.v7.view.menu.MenuBuilder { void removeItemAt(int); }' Note: android.support.v4.widget.TextViewCompat$OreoCallback accesses a declared method 'removeItemAt(int)' dynamically Maybe this is program method 'android.support.v7.view.menu.MenuBuilder { void removeItemAt(int); }' Note: android.support.v7.app.ResourcesFlusher accesses a declared field 'mDrawableCache' dynamically Note: android.support.v7.app.ResourcesFlusher accesses a declared field 'mUnthemedEntries' dynamically Note: android.support.v7.widget.ViewUtils accesses a method 'makeOptionalFitsSystemWindows()' dynamically Note: androidx.versionedparcelable.VersionedParcel accesses a declared method 'read(androidx.versionedparcelable.VersionedParcel)' dynamically Maybe this is program method 'android.support.v4.graphics.drawable.IconCompatParcelizer { android.support.v4.graphics.drawable.IconCompat read(androidx.versionedparcelable.VersionedParcel); }' Maybe this is program method 'androidx.core.graphics.drawable.IconCompatParcelizer { android.support.v4.graphics.drawable.IconCompat read(androidx.versionedparcelable.VersionedParcel); }' Note: com.tencent.bugly.beta.tinker.TinkerPatchReflectApplication accesses a declared field 'mInitialApplication' dynamically Note: com.tencent.bugly.beta.tinker.TinkerPatchReflectApplication accesses a declared field 'mAllApplications' dynamically Note: com.tencent.bugly.beta.tinker.TinkerPatchReflectApplication accesses a declared field 'mApplication' dynamically Maybe this is program field 'android.arch.lifecycle.AndroidViewModel { android.app.Application mApplication; }' Maybe this is program field 'android.arch.lifecycle.ViewModelProvider$AndroidViewModelFactory { android.app.Application mApplication; }' Note: com.tencent.tinker.loader.SystemClassLoaderAdder$ArkHot accesses a declared method 'applyPatch(java.lang.ClassLoader,java.lang.String)' dynamically Note: com.tencent.tinker.loader.app.TinkerApplication accesses a method 'tryLoad(com.tencent.tinker.loader.app.TinkerApplication)' dynamically Maybe this is program method 'com.tencent.tinker.loader.AbstractTinkerLoader { android.content.Intent tryLoad(com.tencent.tinker.loader.app.TinkerApplication); }' Maybe this is program method 'com.tencent.tinker.loader.TinkerLoader { android.content.Intent tryLoad(com.tencent.tinker.loader.app.TinkerApplication); }' Note: com.tencent.tinker.loader.shareutil.ShareReflectUtil accesses a method 'currentActivityThread()' dynamically Note: com.tencent.tinker.loader.shareutil.ShareReflectUtil accesses a field 'mLoadedApk' dynamically Note: com.tencent.tinker.loader.shareutil.ShareReflectUtil accesses a declared field 'mActivityThread' dynamically Maybe this is program field 'com.tencent.tinker.loader.hotplug.interceptor.TinkerHackInstrumentation { java.lang.Object mActivityThread; }' Note: com.tencent.tinker.loader.shareutil.ShareTinkerInternals accesses a declared method 'isRunningInArk()' dynamically Note: the configuration keeps the entry point 'android.arch.lifecycle.LiveData { void considerNotify(android.arch.lifecycle.LiveData$ObserverWrapper); }', but not the descriptor class 'android.arch.lifecycle.LiveData$ObserverWrapper' Note: the configuration keeps the entry point 'android.arch.lifecycle.LiveData { void dispatchingValue(android.arch.lifecycle.LiveData$ObserverWrapper); }', but not the descriptor class 'android.arch.lifecycle.LiveData$ObserverWrapper' Note: the configuration keeps the entry point 'android.arch.lifecycle.LiveData { void observe(android.arch.lifecycle.LifecycleOwner,android.arch.lifecycle.Observer); }', but not the descriptor class 'android.arch.lifecycle.LifecycleOwner' Note: the configuration keeps the entry point 'android.arch.lifecycle.LiveData { void observe(android.arch.lifecycle.LifecycleOwner,android.arch.lifecycle.Observer); }', but not the descriptor class 'android.arch.lifecycle.Observer' Note: the configuration keeps the entry point 'android.arch.lifecycle.LiveData { void observeForever(android.arch.lifecycle.Observer); }', but not the descriptor class 'android.arch.lifecycle.Observer' Note: the configuration keeps the entry point 'android.arch.lifecycle.LiveData { void removeObserver(android.arch.lifecycle.Observer); }', but not the descriptor class 'android.arch.lifecycle.Observer' Note: the configuration keeps the entry point 'android.arch.lifecycle.LiveData { void removeObservers(android.arch.lifecycle.LifecycleOwner); }', but not the descriptor class 'android.arch.lifecycle.LifecycleOwner' Note: the configuration keeps the entry point 'android.arch.lifecycle.LiveData { java.lang.Object access$000(android.arch.lifecycle.LiveData); }', but not the descriptor class 'android.arch.lifecycle.LiveData' Note: the configuration keeps the entry point 'android.arch.lifecycle.LiveData { java.lang.Object access$100(android.arch.lifecycle.LiveData); }', but not the descriptor class 'android.arch.lifecycle.LiveData' Note: the configuration keeps the entry point 'android.arch.lifecycle.LiveData { java.lang.Object access$102(android.arch.lifecycle.LiveData,java.lang.Object); }', but not the descriptor class 'android.arch.lifecycle.LiveData' Note: the configuration keeps the entry point 'android.arch.lifecycle.LiveData { int access$300(android.arch.lifecycle.LiveData); }', but not the descriptor class 'android.arch.lifecycle.LiveData' Note: the configuration keeps the entry point 'android.arch.lifecycle.LiveData { int access$302(android.arch.lifecycle.LiveData,int); }', but not the descriptor class 'android.arch.lifecycle.LiveData' Note: the configuration keeps the entry point 'android.arch.lifecycle.LiveData { void access$400(android.arch.lifecycle.LiveData,android.arch.lifecycle.LiveData$ObserverWrapper); }', but not the descriptor class 'android.arch.lifecycle.LiveData' Note: the configuration keeps the entry point 'android.arch.lifecycle.LiveData { void access$400(android.arch.lifecycle.LiveData,android.arch.lifecycle.LiveData$ObserverWrapper); }', but not the descriptor class 'android.arch.lifecycle.LiveData$ObserverWrapper' Note: the configuration keeps the entry point 'android.support.v4.app.FragmentActivity { boolean markState(android.support.v4.app.FragmentManager,android.arch.lifecycle.Lifecycle$State); }', but not the descriptor class 'android.arch.lifecycle.Lifecycle$State' Note: the configuration keeps the entry point 'android.support.v4.app.FragmentState { android.support.v4.app.Fragment instantiate(android.support.v4.app.FragmentHostCallback,android.support.v4.app.FragmentContainer,android.support.v4.app.Fragment,android.support.v4.app.FragmentManagerNonConfig,android.arch.lifecycle.ViewModelStore); }', but not the descriptor class 'android.arch.lifecycle.ViewModelStore' Note: the configuration keeps the entry point 'android.support.v4.app.LoaderManager { android.support.v4.app.LoaderManager getInstance(android.arch.lifecycle.LifecycleOwner); }', but not the descriptor class 'android.arch.lifecycle.LifecycleOwner' Note: the configuration keeps the entry point 'android.support.v4.app.LoaderManagerImpl { LoaderManagerImpl(android.arch.lifecycle.LifecycleOwner,android.arch.lifecycle.ViewModelStore); }', but not the descriptor class 'android.arch.lifecycle.LifecycleOwner' Note: the configuration keeps the entry point 'android.support.v4.app.LoaderManagerImpl { LoaderManagerImpl(android.arch.lifecycle.LifecycleOwner,android.arch.lifecycle.ViewModelStore); }', but not the descriptor class 'android.arch.lifecycle.ViewModelStore' Note: the configuration keeps the entry point 'android.support.v4.app.LoaderManagerImpl$LoaderInfo { android.support.v4.content.Loader setCallback(android.arch.lifecycle.LifecycleOwner,android.support.v4.app.LoaderManager$LoaderCallbacks); }', but not the descriptor class 'android.arch.lifecycle.LifecycleOwner' Note: the configuration keeps the entry point 'android.support.v4.app.LoaderManagerImpl$LoaderInfo { void removeObserver(android.arch.lifecycle.Observer); }', but not the descriptor class 'android.arch.lifecycle.Observer' Note: the configuration keeps the entry point 'android.support.v4.app.LoaderManagerImpl$LoaderViewModel { android.support.v4.app.LoaderManagerImpl$LoaderViewModel getInstance(android.arch.lifecycle.ViewModelStore); }', but not the descriptor class 'android.arch.lifecycle.ViewModelStore' Note: the configuration keeps the entry point 'android.support.v4.graphics.drawable.IconCompatParcelizer { android.support.v4.graphics.drawable.IconCompat read(androidx.versionedparcelable.VersionedParcel); }', but not the descriptor class 'androidx.versionedparcelable.VersionedParcel' Note: the configuration keeps the entry point 'android.support.v4.graphics.drawable.IconCompatParcelizer { void write(android.support.v4.graphics.drawable.IconCompat,androidx.versionedparcelable.VersionedParcel); }', but not the descriptor class 'androidx.versionedparcelable.VersionedParcel' Note: the configuration keeps the entry point 'androidx.core.graphics.drawable.IconCompatParcelizer { android.support.v4.graphics.drawable.IconCompat read(androidx.versionedparcelable.VersionedParcel); }', but not the descriptor class 'androidx.versionedparcelable.VersionedParcel' Note: the configuration keeps the entry point 'androidx.core.graphics.drawable.IconCompatParcelizer { void write(android.support.v4.graphics.drawable.IconCompat,androidx.versionedparcelable.VersionedParcel); }', but not the descriptor class 'androidx.versionedparcelable.VersionedParcel' Note: the configuration keeps the entry point 'com.tencent.bugly.beta.tinker.TinkerManager$TinkerPatchResultListener { void onPatchResult(com.tencent.tinker.lib.service.PatchResult); }', but not the descriptor class 'com.tencent.tinker.lib.service.PatchResult' Note: the configuration keeps the entry point 'com.tencent.bugly.beta.tinker.TinkerResultService { void onPatchResult(com.tencent.tinker.lib.service.PatchResult); }', but not the descriptor class 'com.tencent.tinker.lib.service.PatchResult' Note: the configuration keeps the entry point 'com.tencent.bugly.beta.tinker.TinkerUtils$ScreenState { TinkerUtils$ScreenState(android.content.Context,com.tencent.bugly.beta.tinker.TinkerUtils$ScreenState$IOnScreenOff); }', but not the descriptor class 'com.tencent.bugly.beta.tinker.TinkerUtils$ScreenState$IOnScreenOff' Note: the configuration keeps the entry point 'com.tencent.tinker.lib.listener.DefaultPatchListener { android.content.ServiceConnection access$000(com.tencent.tinker.lib.listener.DefaultPatchListener); }', but not the descriptor class 'com.tencent.tinker.lib.listener.DefaultPatchListener' Note: the configuration keeps the entry point 'com.tencent.tinker.lib.service.AbstractResultService { void runResultService(android.content.Context,com.tencent.tinker.lib.service.PatchResult,java.lang.String); }', but not the descriptor class 'com.tencent.tinker.lib.service.PatchResult' Note: the configuration keeps the entry point 'com.tencent.tinker.lib.service.AbstractResultService { void onPatchResult(com.tencent.tinker.lib.service.PatchResult); }', but not the descriptor class 'com.tencent.tinker.lib.service.PatchResult' Note: the configuration keeps the entry point 'com.tencent.tinker.lib.service.DefaultTinkerResultService { void onPatchResult(com.tencent.tinker.lib.service.PatchResult); }', but not the descriptor class 'com.tencent.tinker.lib.service.PatchResult' Note: the configuration keeps the entry point 'com.tencent.tinker.lib.service.DefaultTinkerResultService { boolean checkIfNeedKill(com.tencent.tinker.lib.service.PatchResult); }', but not the descriptor class 'com.tencent.tinker.lib.service.PatchResult' Note: there were 2 references to unknown classes. You should check your configuration for typos. (http://proguard.sourceforge.net/manual/troubleshooting.html#unknownclass) Note: there were 2 classes trying to access generic signatures using reflection. You should consider keeping the signature attributes (using '-keepattributes Signature'). (http://proguard.sourceforge.net/manual/troubleshooting.html#attributes) Note: there were 34 unkept descriptor classes in kept class members. You should consider explicitly keeping the mentioned classes (using '-keep'). (http://proguard.sourceforge.net/manual/troubleshooting.html#descriptorclass) Note: there were 31 unresolved dynamic references to classes or interfaces. You should check if you need to specify additional program jars. (http://proguard.sourceforge.net/manual/troubleshooting.html#dynamicalclass) Note: there were 28 accesses to class members by means of introspection. You should consider explicitly keeping the mentioned class members (using '-keep' or '-keepclassmembers'). (http://proguard.sourceforge.net/manual/troubleshooting.html#dynamicalclassmember) Unexpected error while performing partial evaluation: Class = [com/tencent/bugly/beta/global/b] Method = [onClick(Landroid/view/View;)V] Exception = [java.lang.IllegalArgumentException] (Can't find common super class of [com/tencent/bugly/beta/global/b] (with 2 known super classes) and [com/tencent/bugly/beta/ui/UpgradeDialog] (with 3 known super classes)) Unexpected error while performing partial evaluation: Class = [com/tencent/bugly/beta/ui/UpgradeDialog] Method = [onStart()V] Exception = [java.lang.IllegalArgumentException] (Can't find common super class of [com/tencent/bugly/beta/ui/UpgradeDialog] (with 3 known super classes) and [android/content/Context] (with 2 known super classes)) Warning: Exception while processing task java.io.IOException: java.lang.RuntimeException: java.lang.IllegalArgumentException: Can't find common super class of [com/tencent/bugly/beta/global/b] (with 2 known super classes) and [com/tencent/bugly/beta/ui/UpgradeDialog] (with 3 known super classes) Thread(Tasks limiter_13): destruction

Task :app:transformClassesAndResourcesWithProguardForRelease FAILED Request to incrementing alive workforce from 0. Current workforce (dead or alive) 12 thread-pool size=16

FAILURE: Build failed with an exception.

Deprecated Gradle features were used in this build, making it incompatible with Gradle 6.0. Use '--warning-mode all' to show the individual deprecation warnings. See https://docs.gradle.org/5.6.4/userguide/command_line_interface.html#sec:command_line_warnings

BUILD FAILED in 5s 27 actionable tasks: 25 executed, 2 up-to-date

复现路径

dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.android.support:appcompat-v7:28.+' // implementation 'com.android.support:appcompat-v7:29.0.2'

// 多dex配置//注释掉原有bugly的仓库  必须依赖multidex才可以使用 MultiDex.install(base);
implementation "com.android.support:multidex:latest.release" // 多dex配置
//注释掉原有bugly的仓库
//compile 'com.tencent.bugly:crashreport:latest.release'
//其中latest.release指代最新版本号,也可以指定明确的版本号,例如1.3.4
implementation 'com.tencent.bugly:crashreport_upgrade:latest.release'
implementation 'com.tencent.bugly:nativecrashreport:latest.release'
// 指定tinker依赖版本(注:应用升级1.3.5版本起,不再内置tinker)
implementation 'com.tencent.tinker:tinker-android-lib:latest.release'
implementation 'com.tencent.bugly:nativecrashreport:latest.release'
//其中latest.release指代最新版本号,也可以指定明确的版本号,例如2.2.0

}

peng093 commented 3 years ago

指定版本号 implementation 'com.tencent.bugly:crashreport_upgrade:1.5.0' 1.5.23是适配x的,没有使用androidx就会报错,最好不用latest.release,有时bugly更新机会莫名其妙的bug

ceoifung commented 3 years ago

指定版本号 implementation 'com.tencent.bugly:crashreport_upgrade:1.5.0' 1.5.23是适配x的,没有使用androidx就会报错,最好不用latest.release,有时bugly更新机会莫名其妙的bug

实际项目中测试就发现了这个问题,没有使用android X的项目,bugly更新到1.5.23后,就出现闪退的问题了,将版本降低到1.5.0,就没有问题了