Android java unable to load class -
hi unable load class in android app , can load basic class when initialize context in class not able load it
public class main { // initalize context context mcontext; public main(context mcontext){ this.mcontext = mcontext; } public boolean main() { log.d("mylog", "main() called when there context not initialized above"); // code here } }
my class loading code
try{ final file tmpdir = context.getdir("dex", 0); final dexclassloader classloader = new dexclassloader(libpath, tmpdir.getabsolutepath(), null, this.getclass().getclassloader()); final class<object> classtoload = (class<object>) classloader.loadclass("com.myproject.test.dumy_class"); // package plus main class final object myinstance = classtoload.newinstance(); // throwing exception here } } catch (exception e) { // exception thrown @ statement : final object myinstance = classtoload.newinstance(); }
exception got :
java.lang.instantiationexception: can't instantiate class com.myproject.test.dumy_class; no empty constructor
so please .
you need create empty contructor in java class:
public class main { // initalize context context mcontext; public main(){ } public main(context mcontext){ this.mcontext = mcontext; } public boolean main() { log.d("mylog", "main() called when there context not initialized above"); // code here } }
this call empty constructor, may not want.
alternatively, need choose constructor want , add parameter newinstance call (see related question here) so:
class[] carg = new class[1]; carg[0] = context.class; classtoload.getdeclaredconstructor(carg).newinstance(context);
so non-empty constructor
public main(context mcontext)
is called.
Comments
Post a Comment