java.lang.ClassNotFoundException: Yoldaki sınıfı bulamadınız: dexpathlist

Karthik Sivam 08/21/2017. 13 answers, 93.384 views
java android android c++ android-ndk android-ndk

Şu anda tamamen yerli ndk kullanmam gereken bir proje üzerinde çalışıyorum. Irrlicht motor kaynağından bir helloworld örneği çalıştırmayı denediğimde çalıştı. Daha sonra, bu örnekte aynı formatı takip ederek projemde kullanmayı denerim. Ama bende var:

03-14 01:40:05.308: E/AndroidRuntime(799): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.irrlicht.example1/android.app.POMActivity}: java.lang.ClassNotFoundException: Didn't find class "android.app.POMActivity" on path: DexPathList[[zip file "/data/app/com.irrlicht.example1-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.irrlicht.example1-2, /system/lib]] 

projemi yürütürken.

İşte benim main.cpp dosyası:

#include #include #include #include "android_tools.h"
#ifdef _IRR_ANDROID_PLATFORM_
void android_main(android_app* app)
{
__android_log_print(4 , "pom" , "nothing");
} 

#endif

Android.mk'de:

LOCAL_PATH := $(call my-dir)/..
IRRLICHT_PROJECT_PATH := $(LOCAL_PATH)
include $(CLEAR_VARS)
LOCAL_MODULE := Irrlicht
LOCAL_SRC_FILES := /home/karthik/Android/Essentials/ogl-es/lib/Android/libIrrlicht.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := HelloWorldMobile1
LOCAL_CFLAGS := -D_IRR_ANDROID_PLATFORM_ -pipe -fno-exceptions -fno-rtti -fstrict-aliasing
LOCAL_C_INCLUDES := -I ../../include -I /home/karthik/Android/Essentials/ogl-es/include -I /home/karthik/Android/json/jsoncpp-src-0.5.0/libs/linux-gcc-4.8 -I /home/karthik/Android/json/jsoncpp-src-0.5.0/include/json 
LOCAL_SRC_FILES :=  android_tools.cpp main.cpp
LOCAL_LDLIBS := -lEGL -llog -lGLESv1_CM -lGLESv2 -lz -landroid -ldl 
LOCAL_STATIC_LIBRARIES := Irrlicht android_native_app_glue
include $(BUILD_SHARED_LIBRARY)
$(call import-module,android/native_app_glue) 

AndroidManifest.xml içinde Etkinlik adı verdim:

...                 

Burada yaptığım hata nedir? Şartlı olarak tam kodu gönderirim.

4 Comments
Siddharth_Vyas 03/14/2014
Herhangi bir harici jar dosyası mı kullanıyorsunuz?
Karthik Sivam 03/14/2014
@SiddharthVyas Hayır, bu konuda harici jar dosyaları kullanmıyorum.
1 Igor Ganapolsky 08/09/2016
Uygulamanız çok bozulmuş mu? Eğer öyleyse, o zaman bu problemi açıklar.
j2emanue 07/05/2017
İmzalı bir apk yaptığımda bu hata gerçekleşmedi. sadece hata ayıkla

13 Answers


mnsalim 05/23/2017.

Benzer bir sorunum vardı, işte benim çözümüm:

  1. Projenizi sağ tıklayın ve Properties seçin.
  2. Soldaki menüden Java Build Path seçin.
  3. Order and Export sekmesini seçin.
  4. Listeden, projenize eklediğiniz kitaplıkların veya dış kavanozların işaretlendiğinden emin olun.
  5. Son olarak, projenizi temizleyin ve çalıştırın.

Bu cevabı da kontrol edebilirsiniz.

4 comments
1 FoxDonut 11/06/2016
Bu sorunun doğru çözümü. Bunu, yukarıdaki gibi bulunan aynı hatalarla libgdx oyunumla test ettim. Telefonumla oluşturulan günlüğü kullanarak bu hataları buldum (Samsung galaxy S6). Bu çözümü uyguladıktan sonra tüm sorunlarım çözüldü.
2 Zin Min 03/25/2017
Properties'i proje sağ tıklatında bulamıyorum. Ben aptal olabilirim. :(
2 user3036320 04/19/2017
android stüdyo çözümünü göster lütfen ...
2 Skyler 07/08/2017
Özellikleri bulamıyorum, kimse listelenen sayfaya nasıl gidileceğini öğreniyor

Sushil 03/14/2014.

Bu sizin durumunuzda sorun gibi görünüyor. Etkinliğinizin bildirimdeki göreli yolu doğru değil:

 

bunu şununla değiştirin:

 

veya

 
1 comments
1 Karthik Sivam 03/14/2014
Her ikisini de denedim, aynı istisnayı gösterir.

Akash Bisariya 03/06/2017.

Sadece görerek sorunu anlamalıyım

dex errors

Ancak sorunu çözmek için yarım gün sürdü.
Bunu, Android geliştiricileri sayfasının talimatlarını takip ederek düzelttim: https://developer.android.com/studio/build/multidex.html

İlk olarak gradle.build dosyasına ekleyin:

defaultConfig {
    ...
    minSdkVersion 14
    targetSdkVersion 21
    ...

    // Enabling multidex support.
    multiDexEnabled true
}

 dependencies {
     compile 'com.android.support:multidex:1.0.0'
 } 

Daha sonra Uygulama sınıfını genişletin (veya uygulama sınıfını AndroidManifest.xml override attachBaseContext() veya override attachBaseContext() işlevini override attachBaseContext() , yukarıdaki bağlantıda belirtildiği gibi MultiDexApplication sınıfıyla birlikte.

Hepsi bu ve sorunu çözdü.

4 comments
1 milosmns 08/30/2016
Çoklu dex eklenmesi yalnızca referans sayım sınırını (56k) geçtiğinizde yararlıdır ve Lollipop'tan önce very kararsız ve güvenilmezdir. Bu problemleri son çare olarak düzeltmek için kullanılmalıdır.
Akash Bisariya 08/30/2016
o zaman size göre çözüm ne olmalı
milosmns 08/30/2016
Ben sadece multi-dex'in geliştirici web sitesinde açıkça belirtilenden daha fazla sorun yarattığını söylüyorum. Eğer bir tane olsa bir cevap aramak için burada olmaz mıyım?
Akash Bisariya 08/30/2016
Bilgi için teşekkürler, lütfen iyi bir çözüm bulursanız lütfen burayı güncelleyin, çok yardımcı olur.

V. Kalyuzhnyu 07/07/2016.

Cihazda uygulamanın silinmesi ve proje işlerinin temizlenmesi


crazyjune 06/13/2014.
  1. depo klasörü sil
  2. kütüphanecilerin sırasını değiştirmek
  3. temizle ve yeniden inşa et

benim için çalıştı.


Ali Gürelli 10/13/2016.

android studio terminalinde ./gradlew --stop komutunu kullanarak ./gradlew --stop . Bu komutu uyguladıktan sonra projeyi temizleyin ve yeniden oluşturun.


Redman 01/05/2017.

Multidex'e sahip olan herkes için bunu yaz

içinde build.gradle

apply plugin: 'com.android.application'

android {
 defaultConfig {
      multiDexEnabled true
  }
 dexOptions {
        javaMaxHeapSize "4g"
    }
}

dependencies {
    compile 'com.android.support:appcompat-v7:+'
    compile 'com.google.android.gms:play-services:+'
    compile 'com.android.support:multidex:1.0.1'
} 

Aşağıdakine benzer bir EnableMultiDex sınıfı yazmak

import android.content.Context;
import android.support.multidex.MultiDexApplication;

public class EnableMultiDex extends MultiDexApplication {
    private static EnableMultiDex enableMultiDex;
    public static Context context;

    public EnableMultiDex(){
        enableMultiDex=this;
    }

    public static EnableMultiDex getEnableMultiDexApp() {
        return enableMultiDex;
    }

    @Override
    public void onCreate() {
        super.onCreate();
        context = getApplicationContext();

    }
} 

ve AndroidManifest.xml bu className uygulama etiketine yaz

 

Ashik Abbas 07/26/2017.

Olası tüm seçenekleri denedim ama sonuç sıfır. Sonunda benim için faydalı olan doğru çözümü buldum. Anında Çalıştır'ı devre dışı bırakmak için gidin. Dosya -> Ayarlar -> Yapılandırma, Yürütme, Dağıtım -> Anında Çalıştır -> Anında çalıştırma için onay kutusunun işaretini kaldırın . Uygulamanızı bir kez çalıştırın ve bu apk dosyası düzgün çalışıyor.


Walking Code 05/05/2014.

Sadece klasör adınızı libs değiştirin.

Ardından, projenizde bu hatayı düzeltmek için bazı hata işaretlerini görürsünüz.

Properties > Java Build Path > libraries :

Tüm kütüphaneyi üzerinde kırmızı işaretlerle kaldırın, ardından clean your project sonra apply > ok > . TADA büyüyü görmek :)

1 comments
Shubham 10/27/2015
klasör adı sadece libs

Tere Bentikh 09/29/2015.

Verilen cevapları denedikten sonra, aynı İstisna için başka bir neden buldum, kütüphaneyi kütüphaneye eklemek zorunda kaldım.

Right click on my main library > 
Properties > 
Android > 
Go to the very bottom of the screen and click (Add) > 
Select my other library that caused the crash >Apply 

Bu çözümden önce, "Fix Project setup" ı eclipse'deki .java dosyasından kullandım, ancak bu işe yaramadı, bu yüzden el ile buraya eklemek zorundaydım ve


dees91 11/21/2016.

Bazı bağımlılık kaldırıldıktan sonra bu hatayı alırsanız, bildiriminizi kontrol edin ve bağımlılığa karşılık gelen tüm girişleri kaldırdığınızdan emin olun.

1 comments
Petter Friberg 11/21/2016
Lütfen aynı cevabı birden çok soruya eklemeyin. En iyisini cevaplayın ve kalanları kopya olarak işaretleyin. Birkaç soruya çift cevap eklemek kabul edilebilir mi?

Multidex'i kullanırken, uygulama sınıfınızı Uygulama yerine MultiDexAppication ile genişletmeyi deneyin ve Android için gerekli olan aşağıdaki 5.0 sürümünü geçersiz kılın (çünkü multidex'e 5.0 ve üstü destek)

@Override
protected void attachBaseContext(Context base)
{
    super.attachBaseContext(base);
    MultiDex.install(BaseApplication.this);
} 

ve bağımlılıklarda bunu ekleyin

compile 'com.android.support:multidex:1.0.1' 

Shivegeeky 06/23/2017.

Anladığım kadarıyla anladığımdan dolayı android stüdyo 2.1'den 2.3'e kadar güncellemeden sonra sorunu alıyorum. Uygulamamın çıktısını alıp çıktı alıp sdcard'a koydum. Bu sorun için android stüdyosu inşa inşa seçeneği inşa apk oluşturmak.

Related questions

Hot questions

Language

Popular Tags