I have a CustomApplication extends Application class, which is  registered in AndroidManifest
 <application
    ....
// Please, pay attention that I got this in my Manifest
    android:name=".CustomApplication"> 
And at different part of my application, both some activities and services I do
getApplication()/getApplicationContext() then cast it to CustomApplication and it crashes in production on a variety of devices/sdk versions(beginning at android 6) due to a class cast exception. Caused by: java.lang.ClassCastException
Example:
class CustomApplication extends Application{
...
public static CustomApplication with(Context context) {
       return (CustomApplication) context.getApplicationContext(); //crashes here
   }
}
and service example:
class CustomService extends IntentService{
...
@Override
rotected void onHandleIntent(@Nullable Intent intent) {
        CustomApplication app = CustomApplication.from(getApplication());
        // tried getApplicationContext() also
}
}
and activity example:
class CustomActivity extends AppCompatActivity{
...
@Override
protected void onCreate(...){
   CustomApplication app = CustomApplication.with(this);
}
What I've tried:
- Tried services with different process=":process"
- Tried deep linking with different launchModes
- Tried activities with taskAffinity
- launching from push notifications
- process cleaning with system tray(on device), ps kill int adb shell
nothing helps me to reproduce an issue on emulator
I don't use Instant Run also (never used it)
Please don't provide me with suggests of using static application context instance
 
     
    