1

アプリ A が 1 つあり、それを device にインストールしました

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

そして、A1.showToast() を実行したい別のアプリ B を作成しましたが、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が初期化されていないことはわかっているので、「これ」はnullです。誰かが問題について私を助けることができますか?

4

0 に答える 0