1

我有一个应用程序 A,并将其安装到 device

public class A1 extends Activity {
    void onCreate() ...
    void onResume() ...
    void showToast() {
        Toast.makeText(this, "showA1", Toast.LENGTH_SHORT).show();
    }
}

我写了另一个应用程序 B,想执行 A1.showToast(),但在 A1.showToast() 遇到 NullPointerException。

@SuppressWarnings("unchecked")
@Override
public void onClick(View v) {
    String packagePath = "A";
    String classPath = "A.A1";

    try {
        String apkName = getPackageManager().getApplicationInfo(
                packagePath, 0).sourceDir;
        PathClassLoader pathClassLoader = new PathClassLoader(apkName,
                ClassLoader.getSystemClassLoader());
        Class<Activity> handler = (Class<Activity>) Class.forName(
                classPath, true, pathClassLoader);
        Method[] mm = handler.getDeclaredMethods();

        for (Method m : mm) {
            Log.d("Method", m.getName());
        }

        Method method = handler.getDeclaredMethod("showToast",
                (Class[]) null);

        method.setAccessible(true);
        method.invoke(handler.newInstance(), (Object[]) null);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

我知道 A1 没有初始化,所以“this”为空。有人可以帮我解决这个问题吗?

4

0 回答 0