KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I have a thread that loads different classes for the resources it needs depending on the specific implementation of the system. My implementation is on Android and I have a class that returns the specific classes needed by my implementation. I seem to be able to load the class fine, but when I try to assign it to the object in my main thread, it gives me a ClassCastException. Here are the snippets: In my main thread, I do: try { grammarProcessor = config.loadObject(GrammarProcessor.class); which gives me this stacktrace: E/AndroidRuntime(6682): FATAL EXCEPTION: JVoiceXmlMain E/AndroidRuntime(6682): java.lang.ClassCastException: org.jvoicexml.android.JVoiceXmlGrammarProcessor E/AndroidRuntime(6682): at org.jvoicexml.JVoiceXmlMain.run(JVoiceXmlMain.java:321) GrammarProcessor is an interface and JVoiceXmlGrammarProcessor is the class that I load and implements that interface. The loading code is as follows: else if(baseClass == GrammarProcessor.class){ String packageName = "org.jvoicexml.android"; String className = "org.jvoicexml.android.JVoiceXmlGrammarProcessor"; String apkName = null; Class<?> handler = null; T b = null; try { PackageManager manager = callManagerContext.getPackageManager(); ApplicationInfo info= manager.getApplicationInfo(packageName, 0); apkName= info.sourceDir; } catch (NameNotFoundException e1) { // TODO Auto-generated catch block e1.printStackTrace(); return null; } PathClassLoader myClassLoader = new dalvik.system.PathClassLoader( apkName, ClassLoader.getSystemClassLoader()); try { handler = Class.forName(className, true, myClassLoader); return (T) handler
Tags (comma-separated)
Save Edits
Cancel