Skip to content

Instantly share code, notes, and snippets.

@MortimerGoro
Created April 16, 2014 16:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save MortimerGoro/10901996 to your computer and use it in GitHub Desktop.
Save MortimerGoro/10901996 to your computer and use it in GitHub Desktop.
Deep interface hierarchies bung on Android 2.3: LinearAlloc exceeded
public class MyActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
interface A1 {}
interface A2 {}
interface A3 {}
interface A4 {}
interface A5 {}
interface B1 extends A1, A2, A3, A4, A5 {}
interface B2 extends A1, A2, A3, A4, A5 {}
interface B3 extends A1, A2, A3, A4, A5 {}
interface B4 extends A1, A2, A3, A4, A5 {}
interface B5 extends A1, A2, A3, A4, A5 {}
interface C1 extends B1, B2, B3, B4, B5 {}
interface C2 extends B1, B2, B3, B4, B5 {}
interface C3 extends B1, B2, B3, B4, B5 {}
interface C4 extends B1, B2, B3, B4, B5 {}
interface C5 extends B1, B2, B3, B4, B5 {}
interface D1 extends C1, C2, C3, C4, C5 {}
interface D2 extends C1, C2, C3, C4, C5 {}
interface D3 extends C1, C2, C3, C4, C5 {}
interface D4 extends C1, C2, C3, C4, C5 {}
interface D5 extends C1, C2, C3, C4, C5 {}
interface E1 extends D1, D2, D3, D4, D5 {}
interface E2 extends D1, D2, D3, D4, D5 {}
interface E3 extends D1, D2, D3, D4, D5 {}
interface E4 extends D1, D2, D3, D4, D5 {}
interface E5 extends D1, D2, D3, D4, D5 {}
interface F1 extends E1, E2, E3, E4, E5 {}
interface F2 extends E1, E2, E3, E4, E5 {}
interface F3 extends E1, E2, E3, E4, E5 {}
interface F4 extends E1, E2, E3, E4, E5 {}
interface F5 extends E1, E2, E3, E4, E5 {}
interface G1 extends F1, F2, F3, F4, F5 {}
interface G2 extends F1, F2, F3, F4, F5 {}
interface G3 extends F1, F2, F3, F4, F5 {}
interface G4 extends F1, F2, F3, F4, F5 {}
interface G5 extends F1, F2, F3, F4, F5 {}
interface H1 extends G1, G2, G3, G4, G5 {}
interface H2 extends G1, G2, G3, G4, G5 {}
interface H3 extends G1, G2, G3, G4, G5 {}
interface H4 extends G1, G2, G3, G4, G5 {}
interface H5 extends G1, G2, G3, G4, G5 {}
/**
* I had a problem so I thought to use Java. Now I have a ProblemFactory.
* This Application can't be installed in Android 2.3
* Dexopt fails with "LinearAlloc exceeded" message on Android 2.3.x
* Android 2.3 can't handle deep interface hierarchies or complex libraries....
*/
interface AbstractFactory extends H1, H2, H3, H4, H5 {}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment