কাস্টম গ্লোবাল অ্যাপ্লিকেশন ক্লাস "android.app. এর সাথে বিরতি দেয়


141

আমার কাছে একটি কাস্টম গ্লোবাল ক্লাস রয়েছে যা দেখতে এমন দেখাচ্ছে

import android.app.Application;

public class MyApp extends Application {

    public String MainAct;

    public String getMainAct() {
        return MainAct;
    }

    public void setMainAct(String mainAct) {
        MainAct = mainAct;
    }
}

আমি অন্য মাধ্যমে এই ক্লাসে একটি স্ট্রিং সংরক্ষণ করতে ইচ্ছুক Activityতার মধ্যে onCreateপদ্ধতি।

    String local = "myLocalVariable";
    ((MyApp) getApplication()).setMainAct(local); //breaks here!!!
    String name = ((MyApp) getApplication()).getMainAct();

এটি ত্রুটিযুক্ত চিহ্নিত রেখায় ব্রেক: Caused by: java.lang.ClassCastException: android.app.Application cannot be cast to com.xxx.yyy.global.MyApp

আমি পাঁচবার কোডটি যাচাই করেছি এবং কোথাও ত্রুটি খুঁজে পাচ্ছি না। ত্রুটি কোথায় কেউ আমাকে বলতে পারে ?!

ধন্যবাদ

উত্তর:


470

ত্রুটি বলে যে, বস্তুর টাইপ দ্বারা ফিরে getApplicationহয় android.app.Application। এর সম্ভাব্য কারণ হ'ল আপনি ম্যানিফেস্টে অ্যাপ্লিকেশনটি সংজ্ঞায়িত করতে ব্যর্থ হয়েছেন। আপনার ম্যানিফেস্টে এর লাইনে কিছু অন্তর্ভুক্ত রয়েছে তা নিশ্চিত করুন:

<application android:name=".MyApp"...
</application>

8
ওহ Godশ্বর, আপনি ঠিক বলেছেন। এবং আমি এটি শেষ মুহুর্তে হারিয়ে ফেলেছি যখন এটি আগে 100 বার কাজ করার সময় কেন এটি কাজ করতে চায় না :)। অনেক ধন্যবাদ!
স্যান্ডেলোন

8
2 বছর পরে, এখনও প্রাণ বাঁচাচ্ছে
বর্ষা আরেদ

30
আরে। আমি এটি আমার প্রকাশ্যে যুক্ত করেছি। তবে এটি এখনও আমাকে ক্লাসকাস্টএক্সেপশন দেয়
সোমু

13
অ্যান্ড্রয়েড এন এ কয়েক মিনিট আগে একই সমস্যা ছিল, ম্যানিফেস্টটি সঠিক ছিল। ডিভাইসটি পুনরায় চালু করুন - ব্যতিক্রম চলে গেল। আজব ...
আর্টকোনিগ

3
@ সোমু ক্লিন ক্যাশে, এবং তাত্ক্ষণিকভাবে চালানো, পুনর্নির্মাণ প্রকল্প, এটি আমার জন্য এই শব্দযুক্ত, আমি মনে করি এটি তাত্ক্ষণিকভাবে চালানো একটি বাগ।
LenaYan

11

পুরানো অ্যান্ড্রয়েড ডিভাইস বা এমুলেটরগুলির জন্য আরেকটি সমাধান । আপনি ম্যানিফেস্টে একটি অ্যাপ্লিকেশন সংজ্ঞায়িত করেছেন:

    <application 
           android:name=".MyApp"...
    </application>

কিন্তু আপনি এখনও এই সমস্যা আছে?

তাত্ক্ষণিক রানটি অক্ষম করার চেষ্টা করুন:

  1. তাত্ক্ষণিক রান অক্ষম করুন
  2. প্রকল্পটি পরিষ্কার এবং পুনর্নির্মাণ করুন
  3. ডিভাইস থেকে অ্যাপটি সরান এবং তাত্ক্ষণিক চালনা ছাড়াই আবার ইনস্টল করুন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.