Lỗi bơm phồng lớp


161

Tôi nhận được lỗi

Unable to start activity ComponentInfo{de.androidbuch.activiti/de.androidbuch.activiti.task.Activity}: android.view.InflateException: Binary XML file line #11: Error inflating class fragment

khi tôi chuyển qua chế độ dọc và chế độ ngang. Tôi đang sử dụng các mảnh vỡ. Xml của tôi là:

 <LinearLayout android:id="@+id/mainLayout"
               android:orientation="horizontal"
               android:layout_width="fill_parent"
               android:layout_height="wrap_content" >

    <ListView android:id="@+id/android:list"
              android:layout_height="wrap_content"
              android:layout_width="fill_parent"/> 

    <fragment android:id="@+id/fragmentDetails"
              android:layout_height="fill_parent"
              android:layout_width="fill_parent"
              class="de.androidbuch.activiti.task.TaskDetailsFragment"/> 
</LinearLayout>

Nếu tôi chuyển qua chế độ ngang và dọc thì mọi thứ đều hoạt động tốt. Nhưng khi tôi nhấp vào đoạn của tôi (và tôi có thể thấy đoạn của mình) và sau đó chuyển sang chế độ khác, tôi gặp lỗi. Bất cứ ý tưởng làm thế nào tôi có thể giải quyết nó? Tìm thấy một số câu trả lời ở đây nhưng không ai trong số này giúp tôi ...

06-21 14:55:05.600: ERROR/AndroidRuntime(7636): FATAL EXCEPTION: main
06-21 14:55:05.600: ERROR/AndroidRuntime(7636): java.lang.RuntimeException: Unable to start activity         
ComponentInfo{de.androidbuch.activiti/de.androidbuch.activiti.task.Activity}:   android.view.InflateException: Binary XML file line #11: Error inflating class fragment
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1736)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1752)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3097)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at android.app.ActivityThread.access$1600(ActivityThread.java:123)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:997)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at android.os.Handler.dispatchMessage(Handler.java:99)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at android.os.Looper.loop(Looper.java:126)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at android.app.ActivityThread.main(ActivityThread.java:3998)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at java.lang.reflect.Method.invokeNative(Native Method)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at java.lang.reflect.Method.invoke(Method.java:491)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at dalvik.system.NativeStart.main(Native Method)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636): Caused by: android.view.InflateException: Binary XML file line #11: Error inflating class fragment
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:688)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at android.view.LayoutInflater.rInflate(LayoutInflater.java:724)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at android.view.LayoutInflater.rInflate(LayoutInflater.java:727)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at android.view.LayoutInflater.inflate(LayoutInflater.java:479)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at android.view.LayoutInflater.inflate(LayoutInflater.java:391)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at android.view.LayoutInflater.inflate(LayoutInflater.java:347)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:227)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at android.app.Activity.setContentView(Activity.java:1771)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at de.androidbuch.activiti.task.TaskActivity.onCreate(TaskActivity.java:83)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1048)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1700)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     ... 12 more

Bạn đang giữ các tệp bố cục riêng biệt trong thư mục bố trí và đất bố trí của bạn?
Nathan Fig

Bạn có thể cung cấp nhật ký lỗi đầy đủ, bao gồm các dòng sau "Không thể bắt đầu hoạt động ..."
Dave

@Nathan Fig: vâng tôi có .. nhưng nhận được lỗi ..
tsync

@Dave: bạn đi đây .. có ý kiến ​​gì không?
tsync

Cần mã bố cục ngang và cũng hữu ích sẽ là các lệnh gọi của bạn đến setContentView và cũng là cách bạn thực hiện hoạt động ở chế độ dọc như tôi giả sử là bạn. Hiện tại dường như không có đủ thông tin. Nhìn vào ví dụ FragmentLayout trong các bản trình diễn API có thể giúp bạn vì có vẻ như bạn đang làm điều gì đó tương tự.
PJL

Câu trả lời:


131

Như hdemirchian đã nói, hãy đảm bảo sử dụng:

import android.support.v4.app.Fragment;

Và cũng đảm bảo rằng Hoạt động đang sử dụng (các) đoạn mở rộng FragmentActivitythay vì thông thường Activity,

import android.support.v4.app.FragmentActivity;

để có được FragmentActivitylớp học.


12
Điều này đã được nâng cấp rất nhiều, nhưng đối với tôi nó bị sập khi tiếp tục ứng dụng và tôi đã sử dụng v4 Fragment và v4 FrsributionActivity - để chính xác hơn là AppCompatActivity.
joseph

4
Đây không phải là giải pháp. nhập android.support.v4.app.Fragment; không thay đổi bất cứ điều gì. Trên thực tế, nó thậm chí không được sử dụng và nhập khẩu không cần thiết.
f470071 4/11/2015

7
Cảm ơn, một lưu ý phụ là AppCompatActivity là hậu duệ của FragmentActivity.
abedfar

nhưng tôi đang sử dụng đoạn dao găm và mảnh dao găm luôn mở rộng đoạn không hoạt động mảnh
user3475052

96

Ngoại lệ android.view.InflateException: Binary XML file line: #... Error inflating class fragmentcó thể xảy ra nếu bạn thao tác với getActivity()bên trong đoạn của mình trước khi onActivityCreated()được gọi. Trong trường hợp như vậy, bạn nhận được một tài liệu tham khảo hoạt động sai và không thể dựa vào đó.

Ví dụ, mẫu tiếp theo là sai:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
        Bundle savedInstanceState) 
{
    final View view = inflater.inflate(R.layout..., container, false);

    Button button = getActivity().findViewById(R.id...);
    button.setOnClickListener(...); - another problem: button is null

    return view;
}

Đúng mẫu # 1

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
        Bundle savedInstanceState) 
{
    final View view = inflater.inflate(R.layout..., container, false);

    Button button = view.findViewById(R.id...);
    button.setOnClickListener(...);

    return view;
}

Đúng mẫu # 2

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

    Button button = getActivity().findViewById(R.id...);
    button.setOnClickListener(...);
}

@MaximKorobov Bạn có thể gọi getActivity()bên trong onActivityCreated()hoặc trong bất kỳ phương thức vòng đời tiếp theo nào, nhưng trước đó onDestroyView().
Grigori A.

Cảm ơn rất nhiều, điều này đã giúp rất nhiều!
Shotgun Ninja

Cảm ơn :-) điều này đã giúp tôi tiết kiệm rất nhiều thời gian :)
user1007522

Tôi muốn tìm hiểu thêm về điều này, tôi đang gặp một vụ tai nạn lẻ tẻ và tôi nghĩ đây có thể là vấn đề. Mặc dù hầu hết thời gian mã hoạt động tốt, vì vậy thật khó để biết
Daniel Wilson

Mẫu 2 có thể đã giải quyết nó cho tôi. Ngón tay đan chéo. Cảm ơn vì điều đó.
joseph

53

36

Tôi đã có những lỗi giống nhau. Tôi đã đào cả ngày, dunno nhưng tôi nghĩ tôi đã thử ~ 25 giải pháp cho vấn đề này. Không có gì hoạt động cho đến lúc 2 giờ sáng tôi phát hiện ra rằng tôi đã thiếu dòng này tại ứng dụng xml:

<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />

Dòng đó là bên trong <application>thẻ. Tôi thực sự hy vọng điều này sẽ giúp cho một ai đó. GL.


3
Anh hùng của tôi. Những người như bạn làm cho SO tuyệt vời!
capdragon

5
Giải thích những gì đang xảy ra xin vui lòng. Lợi ích của dòng này là gì?
Mansour Fahad

2
Cảm ơn, tiết kiệm ngày của tôi. Mỗi mẫu sử dụng bản đồ Google trên Android hoạt động khác nhau, tôi tự hỏi liệu có một tiêu chuẩn nào không.
dùng2812866

22

Tôi đã từng gặp vấn đề tương tự. Giải pháp cho tôi là thứ tự super.onCreate và setContentView trong FragmentActivity

Theo thứ tự hoạt động tốt:

    super.onCreate(savedInstanceState);
    setContentView(R.layout.fc_activity_list_profiles);

3
Tại sao điều này sửa chữa nó?
Spencer

1
Trong một phương thức JAVA, superphải luôn được gọi ở đầu phương thức.
Stéphane Bruckert

11
@ StéphaneBruckert không phải lúc nào cũng super.method()phải gọi trước. Nó phụ thuộc vào những gì phương thức của siêu lớp làm. Trong trường hợp của FragmentActivitynó, một số khởi tạo cần thiết để làm cho setContentViewcông việc đúng. Tuy nhiên, trong một phương thức khác (giả sử onKeyUp), bạn có thể muốn thực hiện một số điều kiện với hành động, nhưng dự phòng super.onKeyUptrong trường hợp đó bạn rất có thể muốn gọi super.onKeyUpở cuối hàm.
CoatedMoose

Có lẽ cũng cần lưu ý rằng super()(hàm tạo của lớp cha) phải là hàm đầu tiên được gọi trong bất kỳ hàm tạo lớp con nào, tuy nhiên việc gọi nó không nhất thiết là bắt buộc (nó sẽ phụ thuộc hoàn toàn vào lớp được mở rộng).
CoatedMoose

17

Các đoạn không thể được lồng trong XML

Đã học được điều này một cách khó khăn - nếu bạn lồng một <fragment>thẻ dựa trên bố cục XML bên trong một đoạn (có khả năng) được tải động từ FragmentManagerđó, thì bạn bắt đầu gặp các lỗi lạ, cố gắng làm tăng xml mảnh của bạn.

Hóa ra, điều này không được hỗ trợ - nó sẽ hoạt động tốt nếu bạn thực hiện điều này thông qua FragmentManagerphương pháp hoàn toàn .

Tôi đã gặp vấn đề này bởi vì tôi đã thử tải một đoạn trong <DrawerLayout>xml và điều này đã gây ra sự cố trong onCreateView()phương thức khi tôi bật ngăn xếp trở lại.


Điều này vẫn chưa được hỗ trợ? Kể từappcompat-v7:23.3.0
khung gầm

vâng tôi đang làm tổ đoạn bên trong xml. Tôi sẽ nhìn vào đó.
KDeogharkar

Nhưng vẫn tồn tại các giải pháp / hack cho vấn đề: stackoverflow.com/a/14695397/860488
Morten Holmgaard

2
Xem ghi chú ở cuối phần này để xác nhận: developer.android.com/about/versions/
triệt

không chắc chắn tại sao giải pháp là đơn giản. Đối với tôi, chỉ cần thay thế <fragment>bằng <frameLayout>làm việc. Tôi vẫn đang tìm ra nó. - stackoverflow.com/a/19167009/5477548
tải vào

16

Tôi đã có cùng một vấn đề như bạn đang phải đối mặt. Không có lời khuyên nào trên đầu giúp tôi. Sau đó, tôi thấy rằng tất cả những gì tôi phải làm là sửa lỗi nhập khẩu từ:

import android.app.Fragment;

đến:

import android.support.v4.app.Fragment;

Cảm ơn, giải pháp này đã làm việc cho tôi quá. Tôi đã vật lộn với vấn đề này trong 2 ngày. Cuối cùng, giải pháp của bạn đã có hiệu quả với tôi. Cảm ơn hdemirchian ..
Lakshmanan

Bạn thật tuyệt vời! Vấn đề của tôi đã ngược lại - trình hướng dẫn Fragment nhập android.support.v4.app.Fragment theo mặc định. Và hoạt động chính của tôi mở rộng android.app.Activity.
Kiểm soát công nghiệp Freak

12

Bạn đã thử chưa:

 <fragment
            android:name="de.androidbuch.activiti.task.TaskDetailsFragment"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" />

1
Bạn đã cho chúng tôi xem tệp 1 xml, nhưng bạn nên có 2 tệp trong / layout / và một trong layout-land /
Blundell

12

Hãy chắc chắn rằng không có ngoại lệ được nêu ra trong phương thức onCreateView của đoạn. Nếu có bất kỳ ngoại lệ nào được đưa ra trong phương thức này, logcat sẽ không hiển thị chi tiết chính xác về ngoại lệ đó, thay vào đó nó luôn hiển thị thông báo:

Caused by: java.lang.ClassNotFoundException: Didn't find class "android.view.fragment" 
on path: DexPathList[[zip file "/data/app/com.package/base.apk"],
nativeLibraryDirectories=[/data/app/com.package/lib/arm64, /vendor/lib64, /system/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)

Chỉ cần thêm những gì Lei đang nói là, hãy thử bắt xung quanh mã bên trong lượt xem của bạn và tìm hiểu nguyên nhân gốc thực sự. Cảm ơn Lôi!
Swaroop

6

Nếu bạn TaskDetailsFragmentmở rộng android.app.Fragment, hãy thay đổi onCreateView().

Trả về chế độ xem mà bạn muốn hiển thị trong Đoạn hoặc chuyển đổi Bố cục của bạn để xem bằng cách sử dụng LayoutInflater và trả lại.

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View mainview = inflater.inflate(R.layout.main, null);
    return mainview;
}

Hy vọng điều này làm việc. :)


6

Kiểm tra đường dẫn lớp của bạn, đây có thể là đường dẫn xem không thể tìm thấy định nghĩa lớp của bạn như được định nghĩa trong xml class = "de.androidbuch.activiti.task.TaskDetailsFragment" đường dẫn trên có thể sai.


6

Tôi đã nhận được lỗi này vì những lý do khác nhau.

Các bước để tái sản xuất:

~> Vấn đề của tôi là tôi đã tạo ra một ứng dụng trống hoàn toàn mới.

~> Sau đó tôi đã tạo một đoạn tùy chỉnh từ Tệp ~> Menu Tệp mới.

~> Đã tiến hành tùy chỉnh đoạn bằng cách thêm bố cục và nút, v.v.

~> Đã tham chiếu đoạn tùy chỉnh mới trong Activity_my.xml được tạo tự động được tạo cho tôi khi tạo ứng dụng. Việc này cho phép XML tạo các đối tượng cho tôi.

Đây là cách bắt khi tạo đoạn tùy chỉnh thông qua Tệp ~> Menu tệp mới, nó tự động tạo ra một chức năng giao diện và đặt nó ở dưới cùng của tệp lớp phân đoạn.

Điều này có nghĩa là lớp MyActivity của bạn phải thực hiện giao diện này. Nếu không thì lỗi trên chỉ xảy ra khi tham chiếu đoạn từ xml. Bằng cách xóa hoàn toàn tham chiếu cho Đoạn trong XML và tạo đoạn thông qua mã trong tệp lớp MyActivity.java, Logcat tạo ra một lỗi ngắn gọn hơn giải thích vấn đề một cách chi tiết và phàn nàn về giao diện. Điều này được thể hiện trong Hoạt động mẫu dự án + Đoạn. Mặc dù, <~ Mẫu dự án đó không tạo ra sơ khai giao diện.


5

Đối với tôi, đó là sau khi cuộn trong dấu vết ngăn xếp, tôi thấy tôi đang thiếu sự cho phép đối với ERIC.ACCESS_NETWORK_STATE

Sau khi thêm quyền này, nó đã được sửa


1
Không tự ngã: "cuộn qua toàn bộ dấu vết ngăn xếp. Cảm ơn bạn @Gil.
Batandwa

4

Nếu bạn có các tệp bố cục riêng cho chế độ dọc và ngang và đang gặp lỗi lạm phát bất cứ khi nào bạn thay đổi hướng sau khi nhấp vào một mục, rất có thể có sự khác biệt giữa các tệp bố cục của bạn.

Khi bạn gặp lỗi, chỉ khi bạn nhấp vào mục ở chế độ ngang hoặc chỉ ở chế độ dọc hoặc cả hai? Hoạt động TaskDetailsFragment của bạn có sử dụng tệp bố cục có thể có sự khác biệt giữa chế độ ngang và dọc không?


Cảm ơn câu trả lời của bạn .. tôi chỉ có một đoạn ở chế độ ngang và không ở chế độ dọc. Vì vậy, tôi chỉ có thể nhấp vào trong chế độ ngang để xem đoạn. Và sau khi tôi chuyển lại sang chế độ ngang, tôi gặp lỗi này ...
tsync

Điều đó gần như chắc chắn là vấn đề sau đó - bạn có chế độ xem ở chế độ dọc không thể tìm thấy ở chế độ ngang. Việc thêm các mảnh vào cảnh quan có khắc phục được vấn đề không?
Nathan Hình

1
Bạn có thể có các chế độ xem không tồn tại trong cả hai tệp - đó là toàn bộ quan điểm của việc có bố cục -land và -port riêng biệt. Tuy nhiên, hãy kiểm tra ids-- Tôi đã bị mất id trong tệp chân dung của mình và đã gặp lỗi này khi chuyển đổi.
maxpolun

4

Nếu bạn đang thêm Fragmenttĩnh, trong xml, thì bạn có thể đã bỏ lỡ để thực hiện OnFragmentInteractionListenertrong Activitylớp của mình . Sau đó, việc thực hiện giao diện sẽ giải quyết vấn đề. Nếu bạn đang thêm Fragmentđộng, nghĩa là, trong lớp java thì đây không phải là giải pháp. Bởi vì chính IDE sẽ không cho phép bạn tiến hành mà không thực hiện các giao diện cần thiết.


3

Vấn đề của tôi trong trường hợp này là một ví dụ đơn giản là có một ngoại lệ con trỏ null ngu ngốc trong một trong những phương thức của tôi đã được gọi sau này trong vòng đời. Điều này đã gây ra ngoại lệ "Lỗi thổi phồng lớp" đối với tôi. Nói tóm lại, hãy nhớ kiểm tra thêm dấu vết ngăn xếp ngoại lệ để biết nguyên nhân có thể.

Khi tôi đã giải quyết ngoại lệ con trỏ null, đoạn của tôi được tải tốt.


3

Không có giải pháp nào được đề cập ở trên giúp tôi. Trong nhật ký tôi có thể tìm thấy chi tiết của ngoại lệ như được đề cập dưới đây:

06-19 16:20:37.885: E/AndroidRuntime(23973): Caused by: java.lang.RuntimeException: API key not found.  Check that /meta-data/ android:name="com.google.android.maps.v2.API_KEY" android:value="your API key"/ is in the application element of AndroidManifest.xml.

Tôi đã làm điều này và mã của tôi đã làm việc!

<meta-data  android:name="com.google.android.maps.v2.API_KEY" android:value="AIzaSyCl1yGPZ3mpxxxxxxxAz2R-t7zcWVzrHUL9k"/>
</application>

3

Nếu bạn không muốn thay đổi bất cứ điều gì và đi với thẻ " đoạn "

làm cái này,

<fragment
 android:visibility="gone" (Visibility will not work, just helps in removing frag from xml viewer)(If you want the visibility to be gone make it in your fragment root element visibility=gone)
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:name="com.example.YOUR_FRAGMENT" (This is important)
 />

2

Có cùng loại lỗi, trong đó chính xác cùng một thông báo lỗi trong logcat đã được hiển thị. Tôi cần thực hiện các thay đổi trong Đường dẫn xây dựng Java nằm bên dưới Project->Properties. Tôi đã bao gồm các thư viện liên quan đến Google Maps như android-support-v4.jargoogle-play-services.jar; tuy nhiên tôi đã bị mất bao gồm cả những thứ này 'Build class path'trong 'Order and Export'menu tùy chọn. Có lẽ lỗi nằm ở đây.

Hãy thử bao gồm các thư viện để đường dẫn lớp xây dựng.

Thứ tự mà các lớp được xây dựng cũng có thể gây ra lỗi, vì vậy lời khuyên của tôi cũng là cố gắng sắp xếp lại thứ tự của đường dẫn tòa nhà. Lỗi biến mất khi tôi sử dụng thứ tự sau : 'my_project_name/src'->'my_project_name/gen'->'Android Private Libraries'. Đơn vị cuối cùng chứa các tệp jar được đề cập trước đó.


1

Trong tệp xml của bạn chỉ cần sử dụng thay vì thẻ. Inflater cố gắng tạo một android.app.Fragment từ đó sẽ thất bại trên API <10. Vì vậy, bạn cần tạo một nhóm xem thuộc loại khác.



1

hãy chắc chắn rằng bạn đã sử dụng cái này

<meta-data
            android:name="com.google.android.maps.v2.API_KEY"
            android:value="AIzaSyBEwmfL0GaZmdVqdTxxxxxxxx-rVgvY" />

không phải cái này..

<meta-data 
         android:name="com.google.android.gms.version" 
          android:value="AIzaSyBEwmfL0GaZmdVqdTCvxxxxxxx-rVgvY" /> 

1

Chỉ có lỗi tương tự. Lý do cho tôi là tầm nhìn của lớp phân mảnh của tôi. Nó được đặt thành mặc định, nên được công khai.


1

Bạn có thể đăng đoạn onCreateonCreateViewphương pháp? Tôi đã có chính xác ngoại lệ được gây ra bởi một ngoại lệ trong onCreatephương thức phân đoạn , khi tôi khắc phục sự cố đó, nó đã sửa lỗi phân đoạn lớp lỗi.


1

Tôi đã nhận được lỗi này trong studio android, vấn đề là đoạn của tôi có bố cục tương đối trong khi mã trên hàm OnCreateView là

mDrawerListView = (ListView) inflater.inflate(
                R.layout.fragment_navigation_drawer, container, false);

mã của bạn đang làm điều tương tự?


1

Nếu bạn muốn kế thừa AppCompatActivity , thì bạn có thể làm một cái gì đó như thế này- Trong hoạt động xml, hãy sử dụng FrameLayout như thế này-

<FrameLayout
    android:id="@+id/result_fragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_below="@+id/progress_frame"/>

và trong hoạt động onCreate-

final FragmentManager supportFragmentManager = getSupportFragmentManager();
    FragmentTransaction ft = supportFragmentManager.beginTransaction();
    ft.replace(R.id.result_fragment, fphResultActivityFragment, "result fragment");
    ft.commitAllowingStateLoss();

Cảm ơn điều này đã giúp. Không chắc chắn tại sao tôi có thể sử dụng <Fragment> trong bố cục của mình thành công trong các ứng dụng khác mà tôi đã làm việc, nhưng nó không hoạt động ở đây!
SingularityFuture

chỉ cần lưu ý điều này có thể hoạt động nhưng điều này thường dành cho các đoạn động không tĩnh
Tanner Summers

1

Tôi đã gặp lỗi tương tự, nhưng vấn đề của tôi là đoạn của tôi không có id trong bố cục xml của hoạt động cha.


1

Sau một ngày vật lộn tôi thấy một số kiểm tra kịch bản có thể là bạn đang phải đối mặt,

Nếu mọi thứ đều giống như mã google thì vui lòng kiểm tra tệp kê khai trong trường hợp của tôi, tôi đã thêm khóa địa lý và khóa bản đồ, đó là lý do tại sao xảy ra ngoại lệ,

Lưu ý - không thêm hai khóa trong tệp kê khai loại bỏ khóa bản đồ

meta-data
        android:name="com.google.android.maps.v2.API_KEY"
        android:value="@string/google_maps_key"/>

ở trên mã và thêm mã này.

 <meta-data
        android:name="com.google.android.geo.API_KEY"
        android:value="@string/auto_location"/>

 <meta-data
        android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version"/>

1

Tôi đã có một vấn đề tương tự; Sau khi chạy ví dụ AdMob , tôi đã cố gắng chèn Quảng cáo vào ứng dụng của mình, gây ra lỗi này:

01-02 16:48:51.269    8199-8199/it.dndc.BreathPlot E/AndroidRuntime FATAL EXCEPTION: main
java.lang.IllegalStateException: Could not execute method of the activity
 Caused by: android.view.InflateException: Binary XML file line #57: Error inflating class fragment

Giải pháp là: bạn không thể chèn đoạn cho Quảng cáo vào ListActivity. Thay vào đó, tôi có thể thêm nó vào FragmentActivity và ActionBarActivity mà không gặp vấn đề gì.

Đề xuất của tôi là: bắt đầu từ ví dụ AdMob và thêm vào đó ứng dụng hiện có của bạn: Tôi sẽ tiết kiệm được rất nhiều thời gian !!!


1

Nếu bạn sử dụng obfuscation với thành phần Điều hướng, bạn cần loại trừ đoạn của Android và đối số của bạn. Thêm các dòng này vào các tệp quy tắc proguard của bạn:

# Exclude the fragments and argType for navigation component.
-keep class * extends androidx.fragment.app.Fragment{}
-keep class com.safetonet.presentation.features.parent.adddevice.model.PresentableAddDeviceData
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.