我希望我的应用仅在横向运行,因此我在清单的每个活动中都添加了android:screenOrientation="landscape"
。
但是令人惊讶的是,我在Crashlytics中遇到了太多崩溃,并且在数据中显示出崩溃是在设备处于纵向模式时发生的(为什么它处于比例模式)。
崩溃说
Caused by android.content.res.Resources$NotFoundException
Resource ID #0x7f0a001e
android.content.res.Resources.getValue (Resources.java:2327)
android.content.res.Resources.loadXmlResourceParser (Resources.java:3692)
android.content.res.Resources.getLayout (Resources.java:2143)
android.view.LayoutInflater.inflate (LayoutInflater.java:396)
android.view.LayoutInflater.inflate (LayoutInflater.java:354)
android.support.v7.app.AppCompatDelegateImplV9.setContentView (AppCompatDelegateImplV9.java:287)
android.support.v7.app.AppCompatActivity.setContentView (AppCompatActivity.java:139)
com.xx.xxx.Activity.onCreate (Activity.java:42)
android.app.Activity.performCreate (Activity.java:5447)
android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1094)
android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2393)
android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2493)
android.app.ActivityThread.handleRelaunchActivity (ActivityThread.java:4014)
android.app.ActivityThread.access$900 (ActivityThread.java:166)
android.app.ActivityThread$H.handleMessage (ActivityThread.java:1289)
android.os.Handler.dispatchMessage (Handler.java:102)
android.os.Looper.loop (Looper.java:136)
android.app.ActivityThread.main (ActivityThread.java:5584)
java.lang.reflect.Method.invokeNative (Method.java)
java.lang.reflect.Method.invoke (Method.java:515)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1268)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1084)
dalvik.system.NativeStart.main (NativeStart.java)
这是我的onCreate方法 @Override
protected void onCreate(Bundle savedInstanceState) {
setTheme(((AppTheme)getApplicationContext()).getCurrentTheme());
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_layout);
ButterKnife.bind(this);
presenter = new Presenter(this);
setupPages();
enterImmersiveMode();
}
我想知道当设备处于纵向模式时,如何在Crashlytics上记录该崩溃的发生。所以我想当它处于纵向模式时,它无法获得所有布局,因为它不在(layout-land)而不是在布局文件夹中。
答案 0 :(得分:1)
我不想鼓励懒惰。这是答案。
但是,请下次使用Google。这是您可以轻松找到的一些基本信息。
在清单中的活动中添加android:screenOrientation="landscape"
。
<activity android:name=".MainActivity"
android:screenOrientation="landscape">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
答案 1 :(得分:0)
您也可以使用setRequestedOrientation(android.content.pm.ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
更改运行时的方向,但是您应该在setContentView
之前调用