android - আপড - জনপ্রিয় অপারেটিং সিস্টেম




java.lang.NoClassDefFoundError: এর ব্যর্থ রেজোলিউশন: ল্যান্ড্রয়েড/সমর্থন/ভি 4/ওএস/বিল্ডকম্প্যাট (5)

আমি আমার Eclipse ইনস্টলটিতে অ্যাপকম্প্যাট লাইব্রেরিগুলিকে 24.2.1 এবং SDK কে Android 7 এ আপডেট করেছি to সেই থেকে, আমি আমার কোনও অ্যাপ্লিকেশন চালাতে সক্ষম নই। আপনি যদি এর সাথে কিছুটা সহায়তা করতে পারেন তবে আমি প্রশংসা করি ...

E/AndroidRuntime(17555): java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v4/os/BuildCompat;
E/AndroidRuntime(17555):    at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:196)
E/AndroidRuntime(17555):    at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:181)
E/AndroidRuntime(17555):    at android.support.v7.app.AppCompatActivity.getDelegate(AppCompatActivity.java:521)
E/AndroidRuntime(17555):    at android.support.v7.app.AppCompatActivity.onCreate(AppCompatActivity.java:71)
E/AndroidRuntime(17555):    at com.ryosoftware.calendareventsnotifier.MainActivity.onCreate(MainActivity.java:844)
E/AndroidRuntime(17555):    at android.app.Activity.performCreate(Activity.java:5990)
E/AndroidRuntime(17555):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
E/AndroidRuntime(17555):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2311)
E/AndroidRuntime(17555):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2420)
E/AndroidRuntime(17555):    at android.app.ActivityThread.access$900(ActivityThread.java:154)
E/AndroidRuntime(17555):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1321)
E/AndroidRuntime(17555):    at android.os.Handler.dispatchMessage(Handler.java:102)
E/AndroidRuntime(17555):    at android.os.Looper.loop(Looper.java:135)
E/AndroidRuntime(17555):    at android.app.ActivityThread.main(ActivityThread.java:5294)
E/AndroidRuntime(17555):    at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(17555):    at java.lang.reflect.Method.invoke(Method.java:372)
E/AndroidRuntime(17555):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
E/AndroidRuntime(17555):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699)
E/AndroidRuntime(17555): Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v4.os.BuildCompat" on path: DexPathList[[zip file "/data/app/com.ryosoftware.calendareventsnotifier-1/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
E/AndroidRuntime(17555):    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
E/AndroidRuntime(17555):    at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
E/AndroidRuntime(17555):    at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
E/AndroidRuntime(17555):    ... 18 more
E/AndroidRuntime(17555):    Suppressed: java.lang.ClassNotFoundException: android.support.v4.os.BuildCompat
E/AndroidRuntime(17555):        at java.lang.Class.classForName(Native Method)
E/AndroidRuntime(17555):        at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
E/AndroidRuntime(17555):        at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
E/AndroidRuntime(17555):        at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
E/AndroidRuntime(17555):        ... 19 more
E/AndroidRuntime(17555):    Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available

আপনি NoClassDefFoundError এবং ClassNotFoundException

জাভাতে NoClassDefFoundError আসে যখন জাভা ভার্চুয়াল মেশিন রানটাইমে কোনও নির্দিষ্ট শ্রেণি খুঁজে না পাওয়া যায় যা সংকলনের সময় পাওয়া যায়।

অবগতির জন্য

আপনি গ্রহনটি ব্যবহার করছেন। অ্যান্ড্রয়েড স্টুডিও অ্যান্ড্রয়েডের জন্য বিকাশের একটি সহজ সরল উপায় যদি আপনি এর হ্যাং পেতে পরিচালনা করেন। যে বিকাশকারীরা Eclipse ব্যবহার করে চলেছেন তাদের জন্য স্টুডিওতে স্থানান্তর করা তাদের জন্য দুঃস্বপ্ন। গ্রহণ মারা গেছে (আমার ব্যক্তিগত মতামত)

আপনার NoClassDefFoundError সমস্যাটির জন্য Project > Clean অধীনে পুনর্নির্মাণের বিকল্পটি বেছে নিন এবং তারপরে আপনি যে প্রকল্পটি পরিষ্কার করতে চান তা নির্বাচন করুন henএখন আপনার Eclipse পুনরায় চালু করুন এবং আবার চালনা করুন।

সলিউশন

আপনার ক্লাসপাথে সেই জার (অ্যাপকম্প্যাট) রয়েছে তা পরীক্ষা করুন, যদি আপনার ক্লাসপথে জারটি না থাকে তবে কেবল আপনার ক্লাসপাথে সেই শ্রেণিটি যুক্ত করুন।

আপনার গ্রহণের পরিবর্তে অ্যান্ড্রয়েড স্টুডিও ব্যবহার করা উচিত। পড়া

  1. সমর্থন লাইব্রেরি বৈশিষ্ট্য

এই গ্রন্থাগারের জন্য গ্র্যাডল বিল্ড স্ক্রিপ্ট নির্ভরতা শনাক্তকরণটি নিম্নরূপ:

com.android.support:appcompat-v7:24.2.1

তারপরে Clean-Rebuild-Restart IDE


আমার ক্ষেত্রে

  1. পরিষ্কার প্রকল্প
  2. অবৈধ এবং পুনরায় আরম্ভ

এটা কাজ


আমি আমার জাভা প্যাকেজ এবং এর কাজ সূক্ষ্মে দুটি ক্লাস যুক্ত করেছি, উভয় শ্রেণিকে নীচের চিত্রে দেখানো হিসাবে রাখুন:

AsyncTaskCompat.java

public class AsyncTaskCompat {

/**
 * Executes the task with the specified parameters, allowing multiple tasks to run in parallel
 * on a pool of threads managed by {@link android.os.AsyncTask}.
 *
 * @param task The {@link android.os.AsyncTask} to execute.
 * @param params The parameters of the task.
 * @return the instance of AsyncTask.
 */
public static <Params, Progress, Result> AsyncTask<Params, Progress, Result> executeParallel(
        AsyncTask<Params, Progress, Result> task, Params... params) {
    if (task == null) {
        throw new IllegalArgumentException("task can not be null");
    }

    if (Build.VERSION.SDK_INT >= 11) {
        // From API 11 onwards, we need to manually select the THREAD_POOL_EXECUTOR
        AsyncTaskCompatHoneycomb.executeParallel(task, params);
    } else {
        // Before API 11, all tasks were run in parallel
        task.execute(params);
    }

    return task;
}
}

AsyncTaskCompatHoneycomb.java

class AsyncTaskCompatHoneycomb {

static <Params, Progress, Result> void executeParallel(
        AsyncTask<Params, Progress, Result> task, Params... params) {
    task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, params);
}
}

এর কারণ হওয়ার আরেকটি কুৎসিত কারণ হ'ল যদি আপনি কার্যকলাপ তৈরির সময় ঘটে এমন কোনও বিষয়ে ব্রেক-পয়েন্টের সাথে কোনও ডিবাগারকে সংযুক্ত করার চেষ্টা করছেন।


public class MApplication extends Application {

    @Override
    protected void attachBaseContext(Context paramContext) {
        super.attachBaseContext(paramContext);
        Helper.install(MApplication.this);
    }
}

এখানে আমরা Helper.install(MApplication.this); যোগ করার জন্য AttBaseContext () পদ্ধতিটি ওভাররাইড করব Helper.install(MApplication.this); কোড লাইন।

দ্রষ্টব্য: যেহেতু এখন এসডিকে ক্লাসের কিছু ব্যবহার করার আগে লোড করা দরকার, লোডিং প্রক্রিয়া হেল্পার.ইনস্টল () দ্বারা করা হয়। কোনও SDK কার্যকারিতা ব্যবহার করার আগে বিকাশকারীকে এই পদ্ধতিটি শুরু করতে হবে। এটি করতে ব্যর্থ হওয়ার ফলে অপ্রত্যাশিত ক্রাশ হবে। reference

Java.lang.NoClassDefFoundError: অ্যাপ্লিকেশনটি ক্র্যাশ না করা হলে: এর ব্যর্থ রেজোলিউশন: ....





android-appcompat