1

横向きモードのみのタブレット ユーザーを対象としたアプリケーションを作成しています。resそのため、 asという名前のフォルダーを作成し、layout-xlarge-landすべてのlayout xmlファイルをその中に入れて、layout folder空のままにしました。マニフェスト ファイルでサポート画面の属性も設定します

<supports-screens
    android:anyDensity="true"
    android:largeScreens="true"
    android:xlargeScreens="true"
    android:normalScreens="false"
    android:smallScreens="false" />

また、すべてのアクティビティの向きを横向きに設定しました

activity
        android:name=".HomeActivity"
        android:label="@string/title_activity_main" 
        android:screenOrientation="landscape">
    </activity>

アプリケーションを起動しても、予期せず停止したというメッセージが表示されません。

しかし、アプリケーションにすべてのlayout xmlファイルを配置すると、正常に動作します。layout folder

なぜこの種の行動をするのですか?私の見解Android systemでは、最初に layout-xlarge-landフォルダを調べて UI を取得する必要があります。見つからない場合は、「レイアウト フォルダ」を調べてください。誰かが私が正しいか間違っているかを説明できますか?

ログキャット:

08-29 12:06:15.040: E/AndroidRuntime(3468): java.lang.RuntimeException: Unable to    
start activity ComponentInfo{com.abs.qpr/com.abs.qpr.LauncherActivity}: 

android.content.res.Resources$NotFoundException: Resource ID #0x7f030001

08-29 12:06:15.040: E/AndroidRuntime(3468):     at   
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1751)

08-29 12:06:15.040: E/AndroidRuntime(3468):     at 
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1767)

08-29 12:06:15.040: E/AndroidRuntime(3468):     at 
android.app.ActivityThread.access$1500(ActivityThread.java:122)

08-29 12:06:15.040: E/AndroidRuntime(3468):     at 
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1005)

08-29 12:06:15.040: E/AndroidRuntime(3468):     at 
android.os.Handler.dispatchMessage(Handler.java:99)

08-29 12:06:15.040: E/AndroidRuntime(3468):     at 
android.os.Looper.loop(Looper.java:132)

08-29 12:06:15.040: E/AndroidRuntime(3468):     at    
android.app.ActivityThread.main(ActivityThread.java:4028)

08-29 12:06:15.040: E/AndroidRuntime(3468):     at  
java.lang.reflect.Method.invokeNative(Native Method)

08-29 12:06:15.040: E/AndroidRuntime(3468):     at 
java.lang.reflect.Method.invoke(Method.java:491)

08-29 12:06:15.040: E/AndroidRuntime(3468):     at 
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:844)

08-29 12:06:15.040: E/AndroidRuntime(3468):     at 
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)

08-29 12:06:15.040: E/AndroidRuntime(3468):     at 
dalvik.system.NativeStart.main(Native Method)

08-29 12:06:15.040: E/AndroidRuntime(3468): Caused by: 
android.content.res.Resources$NotFoundException: Resource ID #0x7f030001

08-29 12:06:15.040: E/AndroidRuntime(3468):     at 
android.content.res.Resources.getValue(Resources.java:1014)

08-29 12:06:15.040: E/AndroidRuntime(3468):     at 
android.content.res.Resources.loadXmlResourceParser(Resources.java:2039)

08-29 12:06:15.040: E/AndroidRuntime(3468):     at 
android.content.res.Resources.getLayout(Resources.java:853)

08-29 12:06:15.040: E/AndroidRuntime(3468):     at 
android.view.LayoutInflater.inflate(LayoutInflater.java:389)

08-29 12:06:15.040: E/AndroidRuntime(3468):     at 
android.view.LayoutInflater.inflate(LayoutInflater.java:347)

08-29 12:06:15.040: E/AndroidRuntime(3468):     at 
com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:245)

08-29 12:06:15.040: E/AndroidRuntime(3468):     at 
android.app.Activity.setContentView(Activity.java:1780)

08-29 12:06:15.040: E/AndroidRuntime(3468):     at 
com.abs.qpr.LauncherActivity.onCreate(LauncherActivity.java:17)

08-29 12:06:15.040: E/AndroidRuntime(3468):     at 
android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1048)

08-29 12:06:15.040: E/AndroidRuntime(3468):     at 
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1715)

08-29 12:06:15.040: E/AndroidRuntime(3468):     ... 11 more`
4

5 に答える 5

1

他のユーザーが言及layout-xlarge-landしたように、9 以上の API レベルがサポートされています。マニフェストの変更に加えて、ビルド ターゲットを 2.3 に設定する必要もあります。

プロジェクト -> プロパティ -> アンドロイド -> ターゲットを 2.3 に変更

于 2012-08-29T06:44:21.810 に答える
0

これを追加してみてください。

android:xlargeScreens="true"
android:anyDensity="true"
于 2012-08-29T06:03:11.593 に答える
0

私は解決策を得ました。少なくとも1つを保持する必要があります。つまり、フォルダ内にlayout xml添付されたファイルを保持する必要があります。残りのファイルはフォルダ内に保持できます。Launcher Activitylayoutlayout xmllayout-xlarge-land

于 2012-08-29T08:59:31.403 に答える
0

あなたが持っているように、スクリーンだけでなくスクリーンlayout-xlarge-landもサポートしていることを述べる必要があります。だからあなたに追加してください。xlargelargeandroid:largeScreens="true"<supports-screens>

于 2012-08-29T06:10:39.970 に答える
0
 <supports-screens android:resizeable=["true"| "false"]
          android:smallScreens=["true" | "false"]
          android:normalScreens=["true" | "false"]
          android:largeScreens=["true" | "false"]
          android:xlargeScreens=["true" | "false"]
          android:anyDensity=["true" | "false"]
          android:requiresSmallestWidthDp="integer"
          android:compatibleWidthLimitDp="integer"
          android:largestWidthLimitDp="integer"/>



 check this link once 

http://developer.android.com/guide/topics/manifest/supports-screens-element.html

于 2012-08-29T06:05:25.657 に答える