0

我已经在我的手机(LG Optimus NET)和 Galaxy Mini 上测试了我的应用程序,一切正常。但是当我想在更大屏幕的设备上测试它时,它会在启动时崩溃。我试过 S3 和 AllView(我不太了解型号)。

我的清单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.swipefragments"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="16" />
    <supports-screens android:largeScreens="true"
        android:normalScreens="true" android:smallScreens="true"
        android:resizeable="true" android:anyDensity="true" />
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/Theme.Sherlock" >
        <activity
            android:name="com.example.swipefragments.MainActivity"
            android:label="Stiai ca..." 
            android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

主要活动:

public class MainActivity extends SherlockFragmentActivity {
    static final int NUM_ITEMS = 550;

    MyAdapter mAdapter;

    ViewPager mPager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);


        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
        getSupportActionBar().setDisplayShowTitleEnabled(false);
        getSupportActionBar().setDisplayShowHomeEnabled(false);
        setContentView(R.layout.fragment_pager);

        mAdapter = new MyAdapter(getSupportFragmentManager());

        mPager = (ViewPager)findViewById(R.id.pager);
        mPager.setAdapter(mAdapter);

        // Watch for button clicks.
        Button button = (Button)findViewById(R.id.goto_first);
//        button.getBackground().setColorFilter(0xFF0174DF, PorterDuff.Mode.MULTIPLY);
        button.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                mPager.setCurrentItem(0);
            }
        });
        button = (Button)findViewById(R.id.goto_last);
        button.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                 mPager.setCurrentItem(NUM_ITEMS-1);
            }
        });

        button = (Button)findViewById(R.id.goto_random);
        button.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {

                Random r = new Random();
                int i1=r.nextInt(529)+20;
                mPager.setCurrentItem(i1);
            }
        });

        button = (Button)findViewById(R.id.goto_about);
        button.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {

             Toast.makeText(MainActivity.this, "Ciuboariu Florin, Ianuarie 2013", Toast.LENGTH_SHORT).show();
            }
        });
    }

    public static class MyAdapter extends FragmentPagerAdapter {
        public MyAdapter(FragmentManager fm) {
            super(fm);
        }

        @Override
        public int getCount() {
            return NUM_ITEMS;
        }

        @Override
        public Fragment getItem(int position) {
            return ArrayListFragment.newInstance(position);
        }
    }

    public static class ArrayListFragment extends SherlockListFragment {
        int mNum;

        /**
         * Create a new instance of CountingFragment, providing "num"
         * as an argument.
         */
        static ArrayListFragment newInstance(int num) {
            ArrayListFragment f = new ArrayListFragment();

            // Supply num input as an argument.
            Bundle args = new Bundle();
            args.putInt("num", num);
            f.setArguments(args);

            return f;
        }

        /**
         * When creating, retrieve this instance's number from its arguments.
         */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
//            Random r = new Random();
//          int i1=r.nextInt(70-1)+1;
//            mNum = i1;
            mNum = getArguments() != null ? getArguments().getInt("num") : 1;
        }

        /**
         * The Fragment's UI is just a simple text view showing its
         * instance number.
         */
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
            View v = inflater.inflate(R.layout.fragment_pager_list, container, false);
            View tv = v.findViewById(R.id.text2);
            switch(mNum){
            IMENSE HERE- deleted
            }
            return v;
        }



        @Override
        public void onActivityCreated(Bundle savedInstanceState) {
            super.onActivityCreated(savedInstanceState);

        }




        @Override
        public void onListItemClick(ListView l, View v, int position, long id) {
            Log.i("FragmentList", "Item clicked: " + id);
        }
    }

日志猫:

01-14 21:42:13.969: E/dalvikvm-heap(17739): Creating VM heap of size start:2097152 max:536870912 base:0x4000c000
01-14 21:42:14.089: E/Tethering(11125): <!>com.android.server.connectivity.Tethering 278<!> active iface (usb0) reported as added, ignoring
01-14 21:42:14.509: E/dalvikvm-heap(17750): Creating VM heap of size start:2097152 max:536870912 base:0x4000c000
01-14 21:42:14.749: I/ActivityManager(11125): Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.example.swipefragments/.MainActivity } from pid 17750
01-14 21:42:14.769: D/LGEHome(11472): <!>com.lge.launcher.HLog 26<!> Launcher.java:1809:onPause()onPause
01-14 21:42:14.769: D/LGEHome(11472): <!>com.lge.launcher.HLog 26<!> Workspace.java:528:updateWallpaperOffset()1 firstEmptyScreen: 6
01-14 21:42:14.769: D/LGEHome(11472): <!>com.lge.launcher.HLog 26<!> Workspace.java:529:updateWallpaperOffset()1 getChildAt(firstEmptyScreen).getRight() 2240
01-14 21:42:14.769: D/LGEHome(11472): <!>com.lge.launcher.HLog 26<!> Workspace.java:536:updateWallpaperOffset()2 scrollRange: 1920, firstEmptyScreen: 6
01-14 21:42:14.779: D/LGEHome(11472): <!>com.lge.launcher.HLog 26<!> Workspace.java:542:updateWallpaperOffset()2 mCurDesktopState: 0, firstEmptyScreen: 6
01-14 21:42:14.779: D/LGEHome(11472): <!>com.lge.launcher.HLog 26<!> Workspace.java:547:updateWallpaperOffset()3 getScrollX: 960, mScrollX: 960
01-14 21:42:14.779: D/LGEHome(11472): <!>com.lge.launcher.HLog 26<!> Workspace.java:548:updateWallpaperOffset()3 getChildAt(firstEmptyScreen).getLeft(): 1920
01-14 21:42:14.779: D/LGEHome(11472): <!>com.lge.launcher.HLog 26<!> Workspace.java:554:updateWallpaperOffset()4 xOffset: 0.5
01-14 21:42:14.859: D/LGEHome(11472): <!>com.lge.launcher.HLog 26<!> Workspace.java:528:updateWallpaperOffset()1 firstEmptyScreen: 6
01-14 21:42:14.929: D/LGEHome(11472): <!>com.lge.launcher.HLog 26<!> Workspace.java:529:updateWallpaperOffset()1 getChildAt(firstEmptyScreen).getRight() 2240
01-14 21:42:14.929: D/LGEHome(11472): <!>com.lge.launcher.HLog 26<!> Workspace.java:536:updateWallpaperOffset()2 scrollRange: 1920, firstEmptyScreen: 6
01-14 21:42:14.929: D/LGEHome(11472): <!>com.lge.launcher.HLog 26<!> Workspace.java:542:updateWallpaperOffset()2 mCurDesktopState: 0, firstEmptyScreen: 6
01-14 21:42:14.929: D/LGEHome(11472): <!>com.lge.launcher.HLog 26<!> Workspace.java:547:updateWallpaperOffset()3 getScrollX: 960, mScrollX: 960
01-14 21:42:14.939: D/LGEHome(11472): <!>com.lge.launcher.HLog 26<!> Workspace.java:548:updateWallpaperOffset()3 getChildAt(firstEmptyScreen).getLeft(): 1920
01-14 21:42:14.959: I/#LGIME(11205): <!>com.jungle.android.utils.Glog 35<!> ### onFinishInput
01-14 21:42:14.959: I/#LGIME(11205): <!>com.jungle.android.utils.Glog 35<!> #### onStartInput restarting : false / inputType : 0
01-14 21:42:14.959: I/Flex(11205): <!>com.lge.provider.Andy_Flex 186<!> getMccCode numeric 22610
01-14 21:42:14.969: I/Flex(11205): <!>com.lge.provider.Andy_Flex 218<!> getMncCode numeric 22610
01-14 21:42:14.969: I/#LGIME(11205): <!>com.jungle.android.utils.Glog 35<!> updateSIMInfo -> Old MCC : 226,Old MNC : 3 MCC = 226 MNC = 10
01-14 21:42:14.999: D/LGEHome(11472): <!>com.lge.launcher.HLog 26<!> Workspace.java:554:updateWallpaperOffset()4 xOffset: 0.5
01-14 21:42:15.139: I/ActivityManager(11125): <!>com.android.server.am.ActivityRecord 444<!> Displayed com.example.swipefragments/.MainActivity: +329ms
01-14 21:42:16.119: E/Tethering(11125): <!>com.android.server.connectivity.Tethering 278<!> active iface (usb0) reported as added, ignoring
01-14 21:42:18.759: D/StatusBarPolicy(11197): [BRIGHTHY] 0. mDataNetType: 8
01-14 21:42:18.759: D/StatusBarPolicy(11197): [BRIGHTHY] curNetwork=22610 curHPLMN=22610
01-14 21:42:18.759: D/StatusBarPolicy(11197): [BRIGHTHY]  getNationalRoaming=false Roaming=false
01-14 21:42:20.109: E/Tethering(11125): <!>com.android.server.connectivity.Tethering 278<!> active iface (usb0) reported as added, ignoring
01-14 21:42:22.109: E/Tethering(11125): <!>com.android.server.connectivity.Tethering 278<!> active iface (usb0) reported as added, ignoring
01-14 21:42:24.099: E/Tethering(11125): <!>com.android.server.connectivity.Tethering 278<!> active iface (usb0) reported as added, ignoring
01-14 21:42:30.759: D/StatusBarPolicy(11197): [BRIGHTHY] 0. mDataNetType: 8
01-14 21:42:30.759: D/StatusBarPolicy(11197): [BRIGHTHY] curNetwork=22610 curHPLMN=22610
01-14 21:42:30.759: D/StatusBarPolicy(11197): [BRIGHTHY]  getNationalRoaming=false Roaming=false
01-14 21:42:30.829: V/DATA(11214): <!>com.android.internal.telephony.MMDataConnectionTracker 1820<!> [DCT] intent received :android.intent.action.SCREEN_OFF
01-14 21:42:30.839: V/FASTDORMANCTY(11214): <!>com.android.internal.telephony.LgeFastDormancyHandler 987<!> [UNKNOWN] intent received :android.intent.action.SCREEN_OFF
01-14 21:42:35.799: D/[Andy_Lock](11125): <!>com.android.internal.policy.impl.Andy_LockScreen 1556<!>  getCurrentStatus simStateREADY
01-14 21:42:35.869: I/#LGIME(11205): <!>com.jungle.android.utils.Glog 35<!> Action : android.intent.action.CLOSE_SYSTEM_DIALOGS
01-14 21:42:35.879: E/WindowManager(11125): <!>com.android.internal.policy.impl.PhoneWindowManager 2211<!> bwk  rotationForOrientationLw case return

谢谢你。

4

2 回答 2

0

在哪些文件夹中放置了以下布局?

  • R.layout.fragment_pager
  • R.layout.fragment_pager_list

在布局或布局-*??

编辑:

我认为问题出在这段代码中(与SherlockFragmentActivity

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);

尝试改用 xml(将其添加到清单文件的活动中):

 <activity
        android:name="com.example.swipefragments.MainActivity"
        android:label="Stiai ca..." 
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
        android:screenOrientation="portrait">

        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

希望能帮助到你!如果是这样,你知道该怎么做;)

干杯!

于 2013-01-14T19:56:31.140 回答
0

几乎不可能说没有看到任何代码或日志,但我会给出一些想法。

我在您的包名称中看到“swipefragments”。您是否在布局中使用片段?如果是这样,错误地实现它们可能会导致它仅在大屏幕设备上崩溃,因为片段在小屏幕设备上的处理方式不同。

另外,我有一个类似的问题,原来是我以非通用方式访问文件(查看特定位置)并且它在大多数设备上都可以工作,但在那些以不同方式实现其文件系统的设备上崩溃。

如果您至少为 提供代码MainActivity,那么准确地说出来会容易得多....

于 2013-01-14T19:36:13.140 回答