老师,学习完第三章遇到2个问题,想请老师解惑
来源:3-6 app定制Fragment导航器

Da丶
2020-02-25
问题1:反射获取Application对象
1.作为一种新的思路,获取Application,确实是一种拓展,但是使用反射获取ActivityThread,未来会不会触发Android 9.0 之后的反射限制。
2.在ActivityThread中,看到currentApplication()方法上面的注解
@UnsupportedAppUsage
我觉得这种方式还是没有将Application-onCreate()作为静态变量保存,然后全局获取更好。
问题2:Demo在内存不足时,App被杀死,进行内容重启时,会闪退。
因为我刚开始进入课程学习阶段,解决起来,有点没有头绪,需要老师帮忙看一下
Caused by: android.view.InflateException: Binary XML file line #9: Binary XML file line #9: Error inflating class fragment
Caused by: android.view.InflateException: Binary XML file line #9: Error inflating class fragment
Caused by: java.lang.IllegalStateException: Fragment com.mooc.libcommon.view.WindowInsetsNavHostFragment did not create a view.
at androidx.fragment.app.FragmentManagerImpl.onCreateView(FragmentManagerImpl.java:3234)
at androidx.fragment.app.FragmentController.onCreateView(FragmentController.java:134)
at androidx.fragment.app.FragmentActivity.dispatchFragmentsOnCreateView(FragmentActivity.java:357)
at androidx.fragment.app.FragmentActivity.onCreateView(FragmentActivity.java:336)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:784)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:734)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:867)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:828)
at android.view.LayoutInflater.inflate(LayoutInflater.java:519)
at android.view.LayoutInflater.inflate(LayoutInflater.java:427)
at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:555)
at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:161)
at com.mooc.ppjoke.MainActivity.onCreate(MainActivity.java:58)
at android.app.Activity.performCreate(Activity.java:7101)
at android.app.Activity.performCreate(Activity.java:7092)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1215)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2763)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2888)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1609)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6606)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:518)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:821)
写回答
1回答
-
问题1:已经实验过了,再android 10上也没有触发反射检测。因为没有标记@hide注解
问题2:这个问题貌似是有的,官方的navigation demo 貌似也有这个问题,这个问题我在后台都看得到。在解。
012020-02-25
相似问题