我们在项目中以及无法构建项目时实施了FirebasePerformance。我在Proguard中遇到错误,这与在外部库(qrchart_obfuscation.jar)中具有两个名称相同但大小写不同的两个类(A.class和a.class)有关。我对proguard也不太熟悉。
通过阅读资料,我希望在proguard中添加-dontwarn选项,但这是我的最后选择,因为资料说“只有在知道自己在做什么时才使用它”。
我仍然尝试添加-dontwarn qr.android.chart
,并且将Mapping.txt与以前没有FirebasePerformance的版本进行了比较,我发现类(qr.android.chart)有所不同,不确定此细节是否有帮助< / p>
通过Proguard的FirebasePerformance设置了解您的帮助和建议。
Reading program directory [C:\...\build\intermediates\transforms\FirebasePerformancePlugin\adevelop\release\4] (filtered)
Warning: class [qr/android/chart/b/a.class] unexpectedly contains class [qr.android.chart.b.A]
Warning: class [qr/android/chart/b/b.class] unexpectedly contains class [qr.android.chart.b.B]
Warning: class [qr/android/chart/b/c.class] unexpectedly contains class [qr.android.chart.b.C]
Warning: class [qr/android/chart/b/d.class] unexpectedly contains class [qr.android.chart.b.D]
Warning: class [qr/android/chart/b/e.class] unexpectedly contains class [qr.android.chart.b.E]
Warning: class [qr/android/chart/b/f.class] unexpectedly contains class [qr.android.chart.b.F]
Warning: class [qr/android/chart/b/g.class] unexpectedly contains class [qr.android.chart.b.G]
Warning: class [qr/android/chart/b/h.class] unexpectedly contains class [qr.android.chart.b.H]
Warning: class [qr/android/chart/b/i.class] unexpectedly contains class [qr.android.chart.b.I]
Warning: class [qr/android/chart/b/j.class] unexpectedly contains class [qr.android.chart.b.J]
Warning: class [qr/android/chart/b/k.class] unexpectedly contains class [qr.android.chart.b.K]
Warning: there were 11 classes in incorrectly named files.
You should make sure all file names correspond to their class names.
The directory hierarchies must correspond to the package hierarchies.
(http://proguard.sourceforge.net/manual/troubleshooting.html#unexpectedclass)
If you don't mind the mentioned classes not being written out,
you could try your luck using the '-ignorewarnings' option.
我看到了在签名APK生成期间与Firebase性能和proguard问题有关的链接,但情况不同-FirebasePerformance SDK external library issue in progaurd
答案 0 :(得分:0)
问题是在维护时qr.android.chart库未使用dontusemixedcaseclassnames选项。
在不区分大小写的文件系统(即Mac OSX喜欢使用的文件系统)上构建时,Firebase Performance使用的字节码检测过程会遇到问题,因为未归档的类最终会相互覆盖。
您的选择是禁用字节码检测,或者在激活dontusemixedcaseclassnames选项的情况下请求新的qr.android.chart库。
答案 1 :(得分:0)
如果您使用的是macOS,我发现了一个丑陋的解决方法。创建区分大小写的磁盘映像,然后在其中复制项目,以便firebase perf插件可以处理区分大小写的文件。
如何在此处创建磁盘映像:https://documentation.spryker.com/tutorials/howtos/ht-case-sensitive-file-system-mac.htm
对于我的项目,我需要一个5GB的图像。