关于dexclassloader 实现一种动态加载另一个apk中类的功能解决办法

关于dexclassloader 实现一种动态加载另一个apk中类的功能Java codepublic class TActivity extends Activ

关于dexclassloader 实现一种动态加载另一个apk中类的功能

Java code
public class TActivity extends Activity {    private TextView text;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        init();    }    private void init(){        text=(TextView)findViewById(R.id.text);        Intent intent=new Intent("com.xikang.yjc.text",null);        PackageManager pm=getPackageManager();        final List<ResolveInfo> plugins=pm.queryIntentActivities(intent, 0);        System.out.println(plugins.size());        ResolveInfo rinfo=plugins.get(0);        ActivityInfo ainfo=rinfo.activityInfo;        String packageName=ainfo.packageName;        String dexPath=ainfo.applicationInfo.sourceDir;        String dexOutputDir=getApplicationInfo().dataDir;        String libPath=ainfo.applicationInfo.nativeLibraryDir;                DexClassLoader cl=new DexClassLoader(dexPath, dexOutputDir, libPath, this.getClass().getClassLoader());        try {            Class<?> clazz=cl.loadClass(packageName+".AndroidTextActivity");            Object obj=clazz.newInstance();            Class[] param=new Class[2];            param[0]=Integer.TYPE;            param[1]=Integer.TYPE;            Method action=clazz.getMethod("tt", param);            Integer i=(Integer)action.invoke(obj, 12,34);            text.setText(i);        } catch (Exception e) {            // TODO Auto-generated catch block            e.printStackTrace();        }                    }


Java code
package com.xikang.yjc.text;import android.app.Activity;import android.os.Bundle;public class AndroidTextActivity extends Activity {    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);    }    public void tt(int a,int b){        System.out.println(a+b);    }}


问题处于第一个类的Intent intent=new Intent("com.xikang.yjc.text",null);
final List<ResolveInfo> plugins=pm.queryIntentActivities(intent, 0);
plugins这个是空的 是我启动的这个"com.xikang.yjc.text"有问题吗? 这个是写调用apk的包名吗?


[解决办法]
贴主,搞定了,咋不说下怎么做的???