Android java无法加载类
嗨,我无法在我的android应用程序中加载类,我可以加载基本类,但当我在该类中初始化上下文时,我无法加载它Android java无法加载类,java,android,loader,dex,Java,Android,Loader,Dex,嗨,我无法在我的android应用程序中加载类,我可以加载基本类,但当我在该类中初始化上下文时,我无法加载它 public class main { // Initalize context Context mContext; public main(Context mContext){ this.mContext = mContext; } public boolean main() { Log.d("MYLOG", "main() c
public class main {
// Initalize context
Context mContext;
public main(Context mContext){
this.mContext = mContext;
}
public boolean main() {
Log.d("MYLOG", "main() called successfully when there context is not initialized like above");
// some code here
}
}
我的类加载代码
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 at that statement : final Object myInstance = classToLoad.newInstance();
}
试试看{
最终文件tmpDir=context.getDir(“dex”,0);
final DexClassLoader classloader=新的DexClassLoader(libPath,tmpDir.getAbsolutePath(),null,this.getClass().getClassLoader());
最终类classToLoad=(类)classloader.loadClass(“com.myproject.test.dumy_Class”);//包加主类
最终对象myInstance=classToLoad.newInstance();//在此处引发异常
}
}捕获(例外e){
//在该语句处引发异常:最终对象myInstance=classToLoad.newInstance();
}
我得到的例外:
java.lang.InstanceionException:无法实例化类
com.myproject.test.dumy_class;没有空构造函数
public main(Context mContext)
因此,请提供帮助。您需要在Java类中创建一个空构造函数:
public class main {
// Initalize context
Context mContext;
public main(){
}
public main(Context mContext){
this.mContext = mContext;
}
public boolean main() {
Log.d("MYLOG", "main() called successfully when there context is not initialized like above");
// some code here
}
}
这将只调用空构造函数,这可能不是您想要的
或者,您需要选择所需的构造函数,并向newInstance调用添加一个参数(请参见),如下所示:
所以你的非空构造函数
public main(Context mContext)
调用。有什么例外?请添加整个跟踪@MartinKonecny我已经编辑了代码,我用try{}将代码括起来,所以当它达到这个状态时就会出现问题:final Object myInstance=classToLoad.newInstance()@MartinKonecny异常:java.lang.实例化异常:无法实例化类com.myproject.test.dumy_类;无空构造函数您需要添加默认(空)构造函数,或选择所需的构造函数。我已经在我的回答中发布了详细的回复