2014-09-07 1 views
0

Я этот класс с именем RiddlesHolder:Почему я получаю это исключение ClassCastException? Работая над затмением, но не в IntelliJ

public class RiddlesHolder extends Application { 
    ArrayList<String> funnyRiddles = new ArrayList<String>(); 
    ArrayList<String> funnyRiddlesAnswers = new ArrayList<String>(); 
    ArrayList<String> KidsRiddles = new ArrayList<String>(); 
    ArrayList<String> KidsRiddlesAnswers = new ArrayList<String>(); 
    ArrayList<String> AnimalRiddles = new ArrayList<String>(); 
    ArrayList<String> AnimalRiddlesAnswers = new ArrayList<String>(); 

    public void addAnimalRiddles(){ 
     AnimalRiddles.add("1"); 
     AnimalRiddles.add("2"); 
    } 

    public void addAnimalRiddlesAnswers(){ 
     AnimalRiddlesAnswers.add("1"); 
     AnimalRiddlesAnswers.add("2"); 
    } 

    public void addFunnyRiddles(){ 
     funnyRiddles.add("1"); 
     funnyRiddles.add("2"); 
    } 

    public void addFunnyRiddleAnswers(){ 
     funnyRiddlesAnswers.add("1"); 
     funnyRiddlesAnswers.add("2"); 
    } 

    public void adKidsRiddles(){ 
     KidsRiddles.add("1"); 
     KidsRiddles.add("2"); 
    } 

    public void addKidsRiddlesASnswers(){ 
     KidsRiddlesAnswers.add("1"); 
     KidsRiddlesAnswers.add("2"); 
    } 

    public ArrayList<String> getAnimalRiddles() { 
     return AnimalRiddles; 
    } 

    public ArrayList<String> getAnimalRiddlesAnswers() { 
     return AnimalRiddlesAnswers; 
    } 

    public ArrayList<String> getFunnyRiddles() { 
     return funnyRiddles; 
    } 

    public ArrayList<String> getFunnyRiddlesAnswers() { 
     return funnyRiddlesAnswers; 
    } 

    public int getFRiddleByContent(String content) { 
     return funnyRiddles.indexOf(content); 
    } 


    public ArrayList<String> getKidsRiddles() { 
     return KidsRiddles; 
    } 

    public ArrayList<String> getKidsRiddlesAnswers() { 
     return KidsRiddlesAnswers; 
    } 

    public int getKidsRiddleByContent(String content) { 
     return KidsRiddles.indexOf(content); 
    } 
} 

и эту линию внутри планируемой деятельности на onCreateView:

final RiddlesHolder riddles = (RiddlesHolder) getActivity().getApplication();

и выдает следующее сообщение об ошибке:

java.lang.ClassCastException: android.app.Application cannot be cast to com.tc.tools.RiddlesHolder 
      at com.tc.gatanki.FunnyRiddles$PlaceholderFragment.onCreateView(FunnyRiddles.java:104) 

Что мне здесь не хватает? Я немного смущен, потому что это рабочий код. Я просто перехожу из затмения в новую студию Android, основанной на intelliJ (предлагается google, даже если она все еще находится на стадии BETA). Почему я получаю эту ошибку в своем коде? Я знаю, что здесь я пропустил здесь очень небольшую часть, но я не могу разглядеть ее на мгновение.

+0

Возможно ли, что Android Studio перепуталась с вашим импортом? Вы можете сравнить заявления импорта из проекта на eclipse, чем на студии Android. –

+0

@JorgeCampos Все одинаково 1: 1 – chility

ответ

2

Специальная инъекция приложения управляется AndroidManifest.xml, поэтому, если это не экземпляр вашего класса приложения, это может быть связано с неправильным отображением AndroidManifest.xml. Можете ли вы проверить, как это выглядит в Android Studio или даже в APK, созданных двумя IDE? Должен быть атрибут на теге <application> что-то вроде android:name="om.tc.tools.RiddlesHolder".

+0

Спасибо! Мне не хватало строки xml. Спасибо, что помогли мне! Вы спасли мне часы, изучая проблему! – chility

Смежные вопросы