DroidPluginTeam / DroidPluginTeam/DroidPlugin

MultiDex & Instant Run could not load class

Open
#234 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
7k
Forks
2.5k
PR merge metrics
No merged PRs in 30d

Description

如果某个app是使用Instant Run的方式来启动,那么在onCreateApplication的时候会发生class not found的error。根据Instant Run的启动方式,它会去构建BootstrapApplication
其中会使用
com.android.tools.fd.runtime.Paths;
com.android.tools.fd.runtime.AppInfo;
而在编译的过程中,
public class AppInfo {
public static String applicationId = "XXXXXX";
public static String applicationClass = "XXXXXX";
}

public final class Paths {
public static String getMainApkDataDirectory(String applicationId) {
return "/data/data/" + applicationId;
}
}

这里会去访问到/data/data/XXXXX/目录下的class dex文件,而不是Plugin构建的那个data目录。
看起来可以通过hook AppInfo的applicationClass和applicationId字段解决问题,但似乎不是最好的办法。

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.