Comments (5)
we are just keeping rxdogtag2's package entirely for now. The library is only a few classes so it's not terrible to keep it. I'd like to find a more precise rule but haven't had time to look more into it yet
from rxdogtag.
Hi Zac
Did you find any workaround for this? I've found a similar issue in my project. Is disabling method inlining an only option for now?
from rxdogtag.
How do the stack traces look if the class is inlined? We're seeing Observable.subscribe()
and Flowable.subscribe()
as first elements in the stack trace, could that be caused by R8? It looks like the ProGuard rules shipped with the library (-keeppackagenames
) work as expected when looking at the decompiled app.
from rxdogtag.
the line numbers will just look odd or confusing in the tag. keeppackagenames does protected the package names but it doesn't protect against inlining
from rxdogtag.
Yep you are right, package names are not kept for inlined methods. Turns out that in our case the problem wasn't with RxDogClass
being inlined but rather RxJava's subscribe()
methods being inlined. We had crash reports like these:
Caused by java.lang.NullPointerException
throw with null exception
io.reactivex.Observable.subscribe (Observable.java:12172)
com.spotify.SomeClass (SomeClass.java:29)
[[ ↑↑ Inferred subscribe point ↑↑ ]]. ([[ ↑↑ Inferred subscribe point ↑↑ ]].java)
...
Solved most of the cases with the following rule which produced the same trace without the first stack trace element:
-keepclassmembers class io.reactivex.* { io.reactivex.disposables.Disposable subscribe*; }
(RxJava 2, ignoring blockingSubscribe()
, subscribeWith()
...)
from rxdogtag.
Related Issues (20)
- Check performance of guarded delegate calls HOT 3
- CompositeException example HOT 4
- Add an opt-in to call onError anyway HOT 1
- Repackage existing OnErrorNotImplementedExceptions by default, add config to disable
- Document current benchmark results in a wiki page HOT 2
- ANR in 0.2.0 HOT 3
- Integrate MkDocs for documentation
- Update benchmark dataparsers to output in a way that can be pasted to benchmark.md
- OnErrorNotImplementedException’s stacktrace isn’t cleared out when it should be HOT 4
- Error: "... only supported starting with Android N... " HOT 4
- 1.0 Proposal HOT 2
- Version 2.0.0 Tracking Issue HOT 1
- Markdown Docs Broken HOT 2
- Snapshots are broken HOT 2
- Add performance impact stats to README HOT 1
- Add support for onError handler HOT 13
- Common crash report for all crashes - Rx v3.0.4 + RxDogTag v2.0.1 HOT 1
- How can I make a jar file of this Project? HOT 1
- Issue with Proguard and AGP 7.0.2 (RxDogTag 1.0.1) HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rxdogtag.