Kesalahan menggembungkan fragmen kelas

161

Saya mendapatkan Kesalahan

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

ketika saya beralih melalui potret dan mode lansekap. Saya menggunakan fragmen. Xml saya adalah:

 <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>

Jika saya beralih melalui mode landscape dan portrait semuanya bekerja dengan baik. Tetapi ketika saya mengklik fragmen saya (dan saya bisa melihat fragmen saya) dan kemudian beralih ke mode lain saya mendapatkan kesalahan. Ada yang tahu bagaimana saya bisa menyelesaikannya? Menemukan beberapa jawaban di sini tetapi tidak ada yang membantu saya ...

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
tsync
sumber
Apakah Anda menyimpan file tata letak terpisah di tata letak dan folder tata letak-lahan?
Nathan Fig
Bisakah Anda memberikan log kesalahan lengkap, termasuk baris setelah "Tidak dapat memulai aktivitas ..."
Dave
@Nathan Fig: ya saya lakukan .. tetapi mendapatkan kesalahan ..
tsync
@Dave: ini dia .. ada ide?
tsync
Butuh kode tata letak lansekap, dan juga akan membantu panggilan Anda ke setContentView dan juga bagaimana Anda melepaskan aktivitas dalam mode potret karena saya menganggap Anda demikian. Saat ini sepertinya tidak ada cukup informasi. Melihat contoh FragmentLayout dalam demo API dapat membantu Anda karena sepertinya Anda melakukan hal yang serupa.
PJL

Jawaban:

131

Seperti yang dikatakan hdemirchian, pastikan untuk menggunakan:

import android.support.v4.app.Fragment;

Dan juga pastikan bahwa Aktivitas yang menggunakan fragmen meluas, FragmentActivitybukan yang biasa Activity,

import android.support.v4.app.FragmentActivity;

untuk mendapatkan FragmentActivitykelas.

Dandre Allison
sumber
12
Ini mendapat banyak suara, tetapi bagi saya itu crash ketika melanjutkan aplikasi, dan saya sudah menggunakan v4 Fragmen dan v4 FrsgmentActivity - untuk lebih tepatnya AppCompatActivity.
joseph
4
Ini bukan solusi. impor android.support.v4.app.Fragment; tidak mengubah apa pun. Sebenarnya itu bahkan impor yang tidak digunakan dan tidak dibutuhkan.
f470071
7
Terima kasih, catatan tambahannya adalah bahwa AppCompatActivity adalah keturunan dari FragmentActivity.
abedfar
tetapi saya menggunakan fragmen belati, dan fragmen belati selalu memperpanjang fragmen bukan aktivitas fragmen
user3475052
96

Pengecualian android.view.InflateException: Binary XML file line: #... Error inflating class fragmentmungkin terjadi jika Anda memanipulasi dengan getActivity()bagian dalam Anda sebelum onActivityCreated()dipanggil. Dalam kasus seperti itu, Anda menerima referensi aktivitas yang salah dan tidak dapat mengandalkan itu.

Misalnya pola berikutnya salah:

@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;
}

Pola yang benar # 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;
}

Pola yang benar # 2

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

    Button button = getActivity().findViewById(R.id...);
    button.setOnClickListener(...);
}
Grigori A.
sumber
@ MaximKorobov Anda dapat menelepon ke getActivity()dalam onActivityCreated()atau dalam metode siklus hidup berikutnya, tetapi sebelumnya onDestroyView().
Grigori A.
Terima kasih banyak, ini sangat membantu!
Shotgun Ninja
Terima kasih :-) ini menghemat banyak waktu saya :)
user1007522
Saya ingin mengetahui lebih banyak tentang ini, saya mengalami kecelakaan sporadis dan saya pikir ini mungkin masalahnya. Meskipun sebagian besar waktu kode berfungsi dengan baik sehingga sulit untuk diketahui
Daniel Wilson
Pola 2 mungkin telah memecahkannya untukku. Semoga saja. Terima kasih untuk itu.
joseph
36

Saya memiliki kesalahan yang sama. Saya menggali sepanjang hari, tidak tahu tetapi saya pikir saya mencoba ~ 25 solusi untuk masalah ini. Tidak ada yang bekerja sampai jam 2 pagi saya menemukan bahwa saya kehilangan baris ini di aplikasi manifest xml:

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

Baris itu ada di dalam <application>tag. Saya benar-benar berharap ini membantu seseorang. GL.

Matiss
sumber
3
Pahlawanku. Orang-orang seperti Anda membuat SANGAT hebat!
capdragon
5
Tolong jelaskan apa yang sedang terjadi. Apa manfaat garis ini?
Mansour Fahad
2
Terima kasih, selamatkan hari saya. Setiap sampel menggunakan peta Google di Android bekerja secara berbeda, saya bertanya-tanya apakah ada standar.
user2812866
22

Saya memiliki masalah yang sama. Solusi bagi saya adalah urutan super.onCreate dan setContentView dalam FragmentActivity

Pesanan berikut berfungsi dengan baik:

    super.onCreate(savedInstanceState);
    setContentView(R.layout.fc_activity_list_profiles);
Wilko
sumber
3
Mengapa ini memperbaikinya?
Spencer
1
Dalam metode JAVA, superharus selalu dipanggil di awal metode.
Stéphane Bruckert
11
@ StéphaneBruckert tidak selalu super.method()harus dipanggil dulu. Itu tergantung pada apa metode kelas super lakukan. Dalam kasus FragmentActivityitu diperlukan inisialisasi beberapa untuk membuat setContentViewbekerja dengan benar. Namun dalam metode lain (katakanlah onKeyUp) Anda mungkin ingin melakukan beberapa pekerjaan dengan tindakan, tapi mundur ke super.onKeyUpdalam kasus yang Anda mungkin ingin menelepon super.onKeyUpdi akhir fungsi.
CoatedMoose
Mungkin juga perlu dicatat bahwa super()(konstruktor superclass) harus menjadi fungsi pertama yang dipanggil dalam konstruktor kelas anak apa pun, namun menyebutnya tidak harus wajib (itu akan tergantung sepenuhnya pada kelas yang diperluas).
CoatedMoose
17

Fragmen tidak dapat disarangkan dalam XML

Pelajari ini dengan cara yang sulit - jika Anda membuat <fragment>tag berbasis tata letak XML di dalam fragmen (berpotensi) yang dimuat secara dinamis FragmentManager, maka Anda mulai mendapatkan kesalahan aneh, mencoba mengembang xml fragmen Anda.

Ternyata, ini tidak didukung - itu akan berfungsi dengan baik jika Anda melakukan ini melalui FragmentManagerpendekatan semata .

Saya mendapatkan masalah ini karena saya mencoba memuat sebuah fragmen di dalam <DrawerLayout>dari xml, dan ini menyebabkan crash pada onCreateView()metode ketika saya membuka tumpukan belakang.

Dhiraj Gupta
sumber
Apakah ini masih belum didukung? Padaappcompat-v7:23.3.0
thanassis
ya saya fragmen bersarang di dalam xml. Saya akan memeriksanya.
KDeogharkar
Tetapi ada solusi / peretasan untuk masalah ini: stackoverflow.com/a/14695397/860488
Morten Holmgaard
2
Lihat catatan di akhir bagian ini untuk konfirmasi: developer.android.com/about/versions/…
Philippe
tidak yakin mengapa solusinya SO sederhana. bagi saya, hanya mengganti <fragment>dengan yang <frameLayout>berfungsi. Saya masih mencari tahu. - stackoverflow.com/a/19167009/5477548
yoad w
16

Saya mengalami masalah yang sama seperti yang Anda hadapi. Tidak ada tips di atas yang membantu saya. Kemudian, saya menemukan bahwa yang harus saya lakukan adalah memperbaiki impor dari:

import android.app.Fragment;

untuk:

import android.support.v4.app.Fragment;
hdemirchian
sumber
Terima kasih, solusi ini juga bekerja untuk saya. Saya berjuang dengan masalah ini selama 2 hari. Akhirnya solusi Anda berhasil untuk saya. Terima kasih hdemirchian ..
Lakshmanan
Kamu Menakjubkan! Masalah saya berlawanan - wizard Fragment mengimpor android.support.v4.app.Fragment secara default. Dan aktivitas utama saya meluas android.app.Activity.
Industrial Control Freak
12

Sudahkah Anda mencoba:

 <fragment
            android:name="de.androidbuch.activiti.task.TaskDetailsFragment"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" />
Blundell
sumber
1
Anda telah menunjukkan kepada kami 1 file xml, tetapi Anda harus memiliki 2 satu di / tata letak / dan satu di tata letak-tanah /
Blundell
12

Pastikan tidak ada pengecualian yang dimunculkan dalam metode onCreateView dari fragmen. Jika ada pengecualian yang dimunculkan dalam metode ini, logcat tidak akan menampilkan detail eksepsi yang tepat, melainkan selalu menampilkan pesan:

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)
Lei
sumber
Hanya untuk menambahkan apa yang dikatakan Lei, letakkan coba tangkap kode di dalam oncreateview Anda dan cari tahu penyebab sebenarnya. Lei terima kasih!
Swaroop
6

Jika Anda TaskDetailsFragmentmemperpanjang android.app.Fragment, lakukan perubahan onCreateView().

Kembalikan tampilan yang ingin Anda tampilkan di Fragmen atau konversikan Tata Letak Anda untuk dilihat dengan menggunakan LayoutInflater dan kembalikan.

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

Semoga ini berhasil. :)

Suryavel TR
sumber
6

Periksa path kelas Anda, ini bisa jadi tampilan inflator tidak dapat menemukan definisi kelas Anda sebagaimana didefinisikan dalam kelas xml Anda = "de.androidbuch.activiti.task.TaskDetailsFragment" jalur di atas bisa salah.

topeng
sumber
6

Saya menerima kesalahan ini karena berbagai alasan.

Langkah-langkah mereproduksi:

~> Masalah saya adalah saya membuat aplikasi kosong baru.

~> Saya kemudian membuat fragmen khusus dari File ~> Menu File Baru.

~> Dilanjutkan untuk menyesuaikan fragmen dengan menambahkan tata letak dan tombol dll.

~> Merujuk fragmen khusus baru di activity_my.xml yang dibuat secara otomatis yang dibuat untuk saya saat membuat aplikasi. Melakukan hal ini memungkinkan XML untuk menghasilkan objek untuk saya.

Heres adalah tangkapan ketika membuat fragmen khusus melalui File ~> Menu File Baru, ia secara otomatis menghasilkan fungsi fungsi rintisan dan menempatkannya di bagian bawah file kelas fragmen.

Ini berarti bahwa kelas MyActivity Anda harus mengimplementasikan antarmuka ini. Jika tidak maka kesalahan di atas hanya terjadi ketika mereferensikan fragmen dari xml. Dengan menghapus referensi untuk Fragmen di XML sepenuhnya, dan membuat fragmen melalui kode di file kelas MyActivity.java Logcat menghasilkan kesalahan yang lebih ringkas menjelaskan masalah secara rinci dan mengeluh tentang antarmuka. Ini ditunjukkan dalam Kegiatan Template Proyek + Fragmen. Meskipun, <~ Template Proyek itu tidak menghasilkan rintisan antarmuka.

xMythicx
sumber
5

Bagi saya itu setelah menggulir jejak stack saya menemukan saya kehilangan izin untuk android.permission.ACCESS_NETWORK_STATE

setelah menambahkan izin ini diperbaiki

Gil
sumber
1
Bukan untuk diri sendiri: "gulir seluruh jejak tumpukan. Terima kasih @Gil.
Batandwa
4

Jika Anda memiliki file tata letak terpisah untuk mode potret dan lansekap dan mendapatkan kesalahan inflasi setiap kali Anda mengubah orientasi setelah mengklik item, kemungkinan besar ada perbedaan antara file tata letak Anda.

Ketika Anda mendapatkan kesalahan, apakah itu hanya ketika Anda mengklik item dalam mode lansekap atau hanya dalam mode potret atau keduanya? Apakah aktivitas TaskDetailsFragment Anda menggunakan file tata letak yang dapat memiliki perbedaan antara mode landscape dan portrait?

Nathan Fig
sumber
Terima kasih atas jawaban Anda .. yah saya hanya memiliki fragmen dalam mode lansekap dan tidak dalam mode potret. Jadi saya bisa mengklik hanya dalam mode lansekap untuk melihat fragmen. Dan setelah saya beralih lagi ke mode lansekap saya mendapatkan kesalahan ini ...
tsync
Itu hampir pasti masalahnya kalau begitu - Anda memiliki pandangan dalam mode potret yang tidak dapat ditemukan dalam mode lansekap. Apakah menambahkan fragmen ke lanskap memperbaiki masalah?
Nathan Fig
1
Anda dapat memiliki tampilan yang tidak ada di kedua file - itulah inti dari memiliki tata letak -land dan -port terpisah. Namun, periksa id - Saya memiliki id yang hilang di file potret saya dan mendapatkan kesalahan ini saat beralih.
maxpolun
4

Jika Anda menambahkan Fragmentsecara statis yaitu, dalam xml, maka Anda mungkin telah gagal mengimplementasikannya OnFragmentInteractionListenerdi Activitykelas Anda . Maka implementasi antarmuka akan menyelesaikan masalah. Jika Anda menambahkan Fragmentsecara dinamis, yaitu di kelas java maka ini bukan solusinya. Karena IDE sendiri tidak akan memungkinkan Anda untuk melanjutkan tanpa mengimplementasikan antarmuka yang diperlukan.

Shaheer Palollathil
sumber
3

Masalah saya dalam kasus ini adalah contoh sederhana memiliki pengecualian null pointer bodoh di salah satu metode saya yang kemudian dipanggil dalam siklus hidup. Ini menyebabkan pengecualian "Kesalahan menggembungkan fragmen kelas" bagi saya. Singkatnya, harap ingat untuk memeriksa lebih jauh ke bawah jejak tumpukan pengecualian untuk kemungkinan penyebabnya.

Setelah saya menyelesaikan pengecualian pointer nol, fragmen saya dimuat dengan baik.

aneh
sumber
3

Tidak ada solusi yang disebutkan di atas yang membantu saya. Dalam log saya bisa menemukan detail pengecualian seperti yang disebutkan di bawah ini:

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.

Saya melakukan ini dan kode saya berfungsi!

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

Jika Anda tidak ingin mengubah apa pun dan pergi dengan tag " fragmen "

melakukan hal ini,

<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)
 />
Sahaj Rana
sumber
2

Memiliki jenis kesalahan yang sama, di mana pesan kesalahan yang sama persis di logcat ditampilkan. Saya perlu membuat perubahan di Java Build Path yang terletak di bawah Project->Properties. Saya telah memasukkan perpustakaan terkait Google Maps seperti android-support-v4.jardan google-play-services.jar; Namun saya hilang termasuk ini di 'Build class path'dalam 'Order and Export'menu opsi. Mungkin kesalahannya ada di sini.

Coba sertakan perpustakaan ke jalur kelas build.

Urutan kelas-kelas yang dibangun mungkin juga memicu kesalahan, jadi saran saya adalah juga mencoba untuk mengatur ulang urutan jalur bangunan. Kesalahan menghilang ketika saya menggunakan urutan sebagai berikut: 'my_project_name/src'->'my_project_name/gen'->'Android Private Libraries'. Unit terakhir berisi file jar yang disebutkan sebelumnya.

Christian Bøge-Rasmussen
sumber
1

Dalam file xml Anda, gunakan saja bukan tag. Inflater mencoba membuat android.app.Fragment yang akan gagal pada API <10. Jadi, Anda perlu membuat grup tampilan dari jenis yang berbeda.

Lucas de Vil
sumber
1

pastikan kamu telah menggunakan yang ini

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

bukan ini..

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

Baru saja mengalami kesalahan yang sama. Alasan saya adalah visibilitas kelas fragmen saya. Itu diatur ke default, harus publik.

southerton
sumber
1

Bisakah Anda memposting fragmen onCreatedan onCreateViewmetode? Saya memiliki pengecualian yang persis sama yang disebabkan oleh pengecualian dalam onCreatemetode fragmen , ketika saya memperbaiki masalah itu memperbaiki kesalahan menggembungkan fragmen kelas.

AdamVe
sumber
1

Saya menerima kesalahan ini di android studio masalahnya adalah bahwa fragmen saya memiliki tata letak relatif sementara kode pada fungsi OnCreateView adalah

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

apakah kode Anda melakukan hal yang sama?

Ahmad Moussa
sumber
1

Jika Anda ingin mewarisi AppCompatActivity , maka Anda dapat melakukan sesuatu seperti ini- Dalam aktivitas xml, gunakan FrameLayout seperti ini-

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

dan dalam aktivitas onCreate-

final FragmentManager supportFragmentManager = getSupportFragmentManager();
    FragmentTransaction ft = supportFragmentManager.beginTransaction();
    ft.replace(R.id.result_fragment, fphResultActivityFragment, "result fragment");
    ft.commitAllowingStateLoss();
Vaibhav Sharma
sumber
Terima kasih, ini membantu. Tidak yakin mengapa saya berhasil menggunakan <fragment> dalam tata letak saya di aplikasi lain yang saya kerjakan, tetapi tidak berfungsi di sini!
SingularityFuture
Catat saja ini bisa bekerja tetapi ini biasanya untuk fragmen dinamis yang tidak statis
Tanner Summers
1

Saya mendapat kesalahan yang sama, tetapi masalah saya adalah bahwa fragmen saya tidak memiliki id di tata letak xml dari aktivitas induk.

stevethecollier
sumber
1

Setelah satu hari berjuang saya menemukan beberapa pemeriksaan skenario mungkin Anda hadapi sama,

Jika semuanya berjalan sama dengan kode google maka silakan periksa file manifes dalam kasus saya saya menambahkan kunci geo dan kunci peta itu sebabnya terjadi pengecualian,

Catatan - jangan menambahkan dua kunci dalam file manifes menghapus kunci peta

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

kode di atas dan tambahkan kode ini.

 <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"/>
Yogesh Rathi
sumber
1

Saya memiliki masalah yang sama; setelah menjalankan contoh AdMob , saya mencoba memasukkan Iklan di aplikasi saya, menyebabkan kesalahan ini:

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

Solusinya adalah: Anda tidak dapat memasukkan fragmen untuk Iklan ke dalam ListActivity. Sebagai gantinya, saya bisa menambahkannya ke FragmentActivity dan ke ActionBarActivity tanpa masalah.

Saran saya adalah: mulai dari contoh AdMob dan tambahkan ke dalamnya aplikasi Anda yang sudah ada: Saya akan menghemat banyak waktu !!!

pengguna2270629
sumber
1

Jika Anda menggunakan kebingungan dengan komponen Navigasi, Anda harus mengecualikan fragmen android dan argumen Anda. Tambahkan baris ini ke file aturan proguard Anda:

# 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
pengguna3193413
sumber