singwhatiwanna / dynamic-load-apk

DL : dynamic load framework in android
http://blog.csdn.net/singwhatiwanna/article/details/40283117
Other
6.02k stars 2k forks source link

对含有fragment的activity支持不好 #122

Open fengzi422 opened 8 years ago

fengzi422 commented 8 years ago

首先框架不支持startActivityFromFragment...当重写了startActivityFromFragment之后,从含有fragment的activity中进入其他activity,再后退回来的时候,会报nullpointerException,这是由于在框架里面fragmentmanager得到的mContext是proxyActivity的,而fragment又是在pluginActivity中初始化的.后退重建fragment的时候,会试图用proxyActivity的classloader加载fragment,但此时proxyActivity的getClassLoader得到的值是null(mPluginPackage还没初始化) \ Caused by: java.lang.NullPointerException** at com.ryg.dynamicload.activity.DLProxyImpl.getClassLoader(DLProxyImpl.java:159) at com.ryg.dynamicload.activity.DLProxyFragmentActivity.getClassLoader(DLProxyFragmentActivity.java:71) at android.support.v4.app.FragmentState.instantiate(Fragment.java:99) at android.support.v4.app.FragmentManagerImpl.restoreAllState(FragmentManager.java:1835) at android.support.v4.app.FragmentActivity.onCreate(FragmentActivity.java:266) at com.ryg.dynamicload.activity.DLProxyFragmentActivity.onCreate(DLProxyFragmentActivity.java:45) at android.app.Activity.performCreate(Activity.java:5340) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1099) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2235) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2320) at android.app.ActivityThread.access$800(ActivityThread.java:138) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1269) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5117) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) at dalvik.system.NativeStart.main(Native Method)