Autore Topic: Errore nell'inserimento di Fragment - Android Studio  (Letto 419 volte)

Offline carbos

  • Nuovo arrivato
  • *
  • Post: 30
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S3 Neo
  • Sistema operativo:
    Windows10
Errore nell'inserimento di Fragment - Android Studio
« il: 29 Gennaio 2016, 15:17:19 CET »
0
LogCat

Citazione
01-29 14:16:06.106 32122-32122/? E/AndroidRuntime: FATAL EXCEPTION: main
                                                   Process: com.carbos.user.animelistapp, PID: 32122
                                                   java.lang.RuntimeException: Unable to start activity ComponentInfo{com.carbos.user.animelistapp/com.carbos.user.animelistapp.MainActivity}: android.view.InflateException: Binary XML file line #15: Error inflating class fragment
                                                       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2328)
                                                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2386)
                                                       at android.app.ActivityThread.access$900(ActivityThread.java:169)
                                                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1277)
                                                       at android.os.Handler.dispatchMessage(Handler.java:102)
                                                       at android.os.Looper.loop(Looper.java:136)
                                                       at android.app.ActivityThread.main(ActivityThread.java:5476)
                                                       at java.lang.reflect.Method.invokeNative(Native Method)
                                                       at java.lang.reflect.Method.invoke(Method.java:515)
                                                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
                                                       at dalvik.system.NativeStart.main(Native Method)
                                                    Caused by: android.view.InflateException: Binary XML file line #15: Error inflating class fragment
                                                       at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:719)
                                                       at android.view.LayoutInflater.rInflate(LayoutInflater.java:761)
                                                       at android.view.LayoutInflater.parseInclude(LayoutInflater.java:855)
                                                       at android.view.LayoutInflater.rInflate(LayoutInflater.java:751)
                                                       at android.view.LayoutInflater.inflate(LayoutInflater.java:498)
                                                       at android.view.LayoutInflater.inflate(LayoutInflater.java:398)
                                                       at android.view.LayoutInflater.inflate(LayoutInflater.java:354)
                                                       at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:256)
                                                       at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:109)
                                                       at com.carbos.user.animelistapp.MainActivity.onCreate(MainActivity.java:17)
                                                       at android.app.Activity.performCreate(Activity.java:5451)
                                                       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)
                                                       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2292)
                                                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2386) 
                                                       at android.app.ActivityThread.access$900(ActivityThread.java:169) 
                                                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1277) 
                                                       at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                       at android.os.Looper.loop(Looper.java:136) 
                                                       at android.app.ActivityThread.main(ActivityThread.java:5476) 
                                                       at java.lang.reflect.Method.invokeNative(Native Method) 
                                                       at java.lang.reflect.Method.invoke(Method.java:515) 
                                                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283) 
                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099) 
                                                       at dalvik.system.NativeStart.main(Native Method) 
                                                    Caused by: java.lang.RuntimeException: com.carbos.user.animelistapp.MainActivity@42253cd8 must implement OnFragmentInteractionListener
                                                       at com.carbos.user.animelistapp.ListAnime.onAttach(ListAnime.java:83)
                                                       at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1019)
                                                       at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1226)
                                                       at android.support.v4.app.FragmentManagerImpl.addFragment(FragmentManager.java:1328)
                                                       at android.support.v4.app.FragmentManagerImpl.onCreateView(FragmentManager.java:2284)
                                                       at android.support.v4.app.FragmentController.onCreateView(FragmentController.java:111)
                                                       at android.support.v4.app.FragmentActivity.dispatchFragmentsOnCreateView(FragmentActivity.java:314)
                                                       at android.support.v4.app.BaseFragmentActivityHoneycomb.onCreateView(BaseFragmentActivityHoneycomb.java:31)
                                                       at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:79)
                                                       at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:695)
                                                       at android.view.LayoutInflater.rInflate(LayoutInflater.java:761) 
                                                       at android.view.LayoutInflater.parseInclude(LayoutInflater.java:855) 
                                                       at android.view.LayoutInflater.rInflate(LayoutInflater.java:751) 
                                                       at android.view.LayoutInflater.inflate(LayoutInflater.java:498) 
                                                       at android.view.LayoutInflater.inflate(LayoutInflater.java:398) 
                                                       at android.view.LayoutInflater.inflate(LayoutInflater.java:354) 
                                                       at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:256) 
                                                       at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:109) 
                                                       at com.carbos.user.animelistapp.MainActivity.onCreate(MainActivity.java:17) 
                                                       at android.app.Activity.performCreate(Activity.java:5451) 
                                                       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093) 
                                                       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2292) 
                                                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2386) 
                                                       at android.app.ActivityThread.access$900(ActivityThread.java:169) 
                                                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1277) 
                                                       at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                       at android.os.Looper.loop(Looper.java:136) 
                                                       at android.app.ActivityThread.main(ActivityThread.java:5476) 
                                                       at java.lang.reflect.Method.invokeNative(Native Method) 
                                                       at java.lang.reflect.Method.invoke(Method.java:515) 
                                                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283) 
                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099) 
                                                       at dalvik.system.NativeStart.main(Native Method) 

Googlando ho trovato che la soluzione è cambiare nell'activity principale la classe padre, ovvero estendere la classe ActivityFragment invece di Activity... Il fatto è che io uso Android Studio, e automaticamente non mi estende la classe Activity ma AppCompatActivity:
Codice (Java): [Seleziona]
package com.carbos.user.animelistapp;

import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                        .setAction("Action", null).show();
            }
        });
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}

Come mi consigliate di fare? Sinceramente AppCompatActivity non la conosco, mai usata, sapete dirmi se mi conviene modificarla o agire diversamente?

Offline zezzo

  • Nuovo arrivato
  • *
  • Post: 33
  • Respect: +3
    • Mostra profilo
Re:Errore nell'inserimento di Fragment - Android Studio
« Risposta #1 il: 29 Gennaio 2016, 16:10:46 CET »
0
Ciao prova a seguire la riga presente nel debug che hai postato

"Caused by: java.lang.RuntimeException: com.carbos.user.animelistapp.MainActivity@42253cd8 must implement OnFragmentInteractionListener"

Penso che extends AppCompatActivity non vada toccato, magari ti basta aggiungere dopo quello implement OnFragmentInteractionListener subito dopo
extends AppCompatActivity , in ogni caso vrdi la guida ufficiale di android alla voce "OnFragmentInteractionListener".
Non conosco bene java ne android sto imparando, quindi di più non so dirti.
Ciao.

Offline carbos

  • Nuovo arrivato
  • *
  • Post: 30
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S3 Neo
  • Sistema operativo:
    Windows10
Re:Errore nell'inserimento di Fragment - Android Studio
« Risposta #2 il: 29 Gennaio 2016, 20:52:29 CET »
0
Hai ragione, grazie mille ;)