Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 创建视图片段上的Viewpager OutofMemory_Android_Android Fragments - Fatal编程技术网

Android 创建视图片段上的Viewpager OutofMemory

Android 创建视图片段上的Viewpager OutofMemory,android,android-fragments,Android,Android Fragments,在使用片段页面编辑器的查看页面时,我遇到了一个奇怪的OutofMemory错误 这些片段只有一个根元素,活动是非常基本的,因为我试图将其剥离到最底层,试图找出它发生的位置 它似乎发生在片段中的onCreateView()之后,但似乎找不到罪魁祸首 非常感谢你的帮助 活动 public class Activity_Content_Dialog extends AppCompatActivity { private SlideshowAdapter _slideShowAdapter;

在使用
片段页面编辑器
查看页面时,我遇到了一个奇怪的OutofMemory错误

这些片段只有一个根元素,活动是非常基本的,因为我试图将其剥离到最底层,试图找出它发生的位置

它似乎发生在片段中的
onCreateView()
之后,但似乎找不到罪魁祸首

非常感谢你的帮助

活动

public class Activity_Content_Dialog extends AppCompatActivity {

    private SlideshowAdapter _slideShowAdapter;
    private ViewPager _viewPager;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_content_dialog);

        _slideShowAdapter = new SlideshowAdapter(getSupportFragmentManager());

       _viewPager = (ViewPager) findViewById(R.id.viewPager);
       _viewPager.setAdapter(_slideShowAdapter);
    }
}
xml

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/content_dialog_activity"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">


    <android.support.v4.view.ViewPager
        android:id="@+id/viewPager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>


</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="wrap_content"
xmlns:android="http://schemas.android.com/apk/res/android" />
xml

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/content_dialog_activity"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">


    <android.support.v4.view.ViewPager
        android:id="@+id/viewPager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>


</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:layout_height="wrap_content"
android:layout_width="wrap_content"
xmlns:android="http://schemas.android.com/apk/res/android" />
最后,这里是错误消息

10-29 10:51:26.605  27188-27188/? E/art? Throwing OutOfMemoryError "Failed to allocate a 22227766 byte allocation with 14873872 free bytes and 14MB until OOM"
10-29 10:51:26.605  27188-27188/? E/AndroidRuntime? Error reporting crash
    java.lang.OutOfMemoryError: Failed to allocate a 22227766 byte allocation with 14873872 free bytes and 14MB until OOM
            at java.lang.AbstractStringBuilder.enlargeBuffer(AbstractStringBuilder.java:95)
            at java.lang.AbstractStringBuilder.append0(AbstractStringBuilder.java:125)
            at java.lang.StringBuffer.append(StringBuffer.java:278)
            at java.io.StringWriter.write(StringWriter.java:123)
            at com.android.internal.util.FastPrintWriter.flushLocked(FastPrintWriter.java:358)
            at com.android.internal.util.FastPrintWriter.appendLocked(FastPrintWriter.java:303)
            at com.android.internal.util.FastPrintWriter.write(FastPrintWriter.java:625)
            at com.android.internal.util.FastPrintWriter.append(FastPrintWriter.java:658)
            at java.io.PrintWriter.append(PrintWriter.java:691)
            at java.io.PrintWriter.append(PrintWriter.java:31)
            at java.lang.Throwable.printStackTrace(Throwable.java:324)
            at java.lang.Throwable.printStackTrace(Throwable.java:300)
            at android.util.Log.getStackTraceString(Log.java:335)
            at com.android.internal.os.RuntimeInit.Clog_e(RuntimeInit.java:59)
            at com.android.internal.os.RuntimeInit.access$200(RuntimeInit.java:43)
            at com.android.internal.os.RuntimeInit$UncaughtHandler.uncaughtException(RuntimeInit.java:85)
            at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:693)
            at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:690)
更改此部分:

 View  view =  inflater.inflate(R.layout.empty_frag,container);
致:


嘿,你解决了这个问题了吗?或者至少有一个线索?这不是最有用的答案,但是我因为在内存中缓存了大量位图而收到OOM错误。最后,我使用了一个名为的第三方库,该库为您处理资源池、内存和缓存。在他们的github页面上有一些如何使用它的示例。谢谢!我会尝试一下,如果我有其他的解决方案,我也会把它贴在这里。我得到了这个错误。没什么要补充的,只是我对现代安卓的厌恶超过了我所能说的。找到了原因。不要将“container”传递给onCreateView()中的充气()调用,而是传递null。好老的安卓,8年来它一直是一堆浪费时间的垃圾。
 View  view =  inflater.inflate(R.layout.empty_frag,container,false);