{"action":"opened","issue":{"url":"https://api.github.com/repos/NativeScript/android-runtime/issues/118","labels_url":"https://api.github.com/repos/NativeScript/android-runtime/issues/118/labels{/name}","comments_url":"https://api.github.com/repos/NativeScript/android-runtime/issues/118/comments","events_url":"https://api.github.com/repos/NativeScript/android-runtime/issues/118/events","html_url":"https://github.com/NativeScript/android-runtime/issues/118","id":87340204,"number":118,"title":"Remove MultiDex library and use DexClassLoader instead","user":{"login":"atanasovg","id":5878999,"avatar_url":"https://avatars.githubusercontent.com/u/5878999?v=3","gravatar_id":"","url":"https://api.github.com/users/atanasovg","html_url":"https://github.com/atanasovg","followers_url":"https://api.github.com/users/atanasovg/followers","following_url":"https://api.github.com/users/atanasovg/following{/other_user}","gists_url":"https://api.github.com/users/atanasovg/gists{/gist_id}","starred_url":"https://api.github.com/users/atanasovg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/atanasovg/subscriptions","organizations_url":"https://api.github.com/users/atanasovg/orgs","repos_url":"https://api.github.com/users/atanasovg/repos","events_url":"https://api.github.com/users/atanasovg/events{/privacy}","received_events_url":"https://api.github.com/users/atanasovg/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/NativeScript/android-runtime/labels/1%20-%20Backlog","name":"1 - Backlog","color":"eeeeee"},{"url":"https://api.github.com/repos/NativeScript/android-runtime/labels/S:High","name":"S:High","color":"eb6420"},{"url":"https://api.github.com/repos/NativeScript/android-runtime/labels/T:Bug","name":"T:Bug","color":"fad8c7"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-06-11T13:07:12Z","updated_at":"2015-06-11T13:07:12Z","closed_at":null,"body":"We are currently using the MultiDex library from Google to add the dynamically generated types (binding proxies) to the system ClassLoader. The support for the library however is discontinued as of Android 5.0+. Additionally, the library uses reflection to access private Array field, which **might** be different on different shells, provided by Hardware Vendors. For example we isolated a Samsung device on which MuliDex is failing.\r\n\r\nThe solution is to load the dynamic classes using DexClassLoader. The drawback with this approach is that the new classes are NOT visible to the system ClassLoader, which on its hand may lead to ClassNotFound exception when a dynamic type is attempted to be loaded by Android directly.\r\n\r\nThe above described problem however will not be present once we implement the AOT generation of binding proxies - #103. "}}