java.lang.ClassNotFoundException: Fandt ikke klassen på sti: dexpathlisten

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

Jeg arbejder i øjeblikket på et projekt, hvor jeg skal bruge rent native ndk. Det fungerede, da jeg forsøgte at køre et helloworld eksempel fra Irrlicht motor kilde. Så prøver jeg at bruge det i mit projekt efter samme format af det eksempel. Men jeg fik:

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]] 

mens jeg kører mit projekt.

Her er min main.cpp-fil:

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

#Afslut Hvis

i Android.mk:

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) 

Og jeg har givet Aktivitetsnavn i AndroidManifest.xml:

...                 

Hvad er den fejl, jeg laver her? Jeg sender fuld kode, hvis det er nødvendigt.

4 Comments
Siddharth_Vyas 03/14/2014
Bruger du nogen eksterne jar filer?
Karthik Sivam 03/14/2014
@SiddharthVyas Nej, jeg bruger ikke eksterne jarfiler i dette.
1 Igor Ganapolsky 08/09/2016
Er din ansøgning multi-dexed? Hvis ja, så forklarer det problemet.
j2emanue 07/05/2017
da jeg lavede en underskrevet apk, opstod denne fejl ikke. bare debug

13 Answers


mnsalim 05/23/2017.

Jeg havde et lignende problem, her er min løsning:

  1. Højreklik på dit projekt og vælg Properties .
  2. Vælg Java Build Path fra menuen til venstre.
  3. Vælg fanen Order and Export .
  4. På listen skal du kontrollere, at biblioteker eller eksterne kasser du har tilføjet til dit projekt, er checked .
  5. Endelig skal du rengøre dit projekt og køre.

Du kan også kontrollere dette svar.

4 comments
1 FoxDonut 11/06/2016
Dette er den rigtige løsning på spørgsmålet. Jeg har testet dette med mit libgdx spil med de samme fejl som fundet ovenfor. Jeg fandt disse fejl ved at bruge loggen genereret med min telefon (Samsung Galaxy S6). Når jeg først anvendte denne løsning, blev alle mine problemer løst.
2 Zin Min 03/25/2017
Jeg kan ikke finde Egenskaber fra højre klik på projekt. Må jeg være dum. :(
2 user3036320 04/19/2017
venligst vis android studio løsning ...
2 Skyler 07/08/2017
Jeg kan heller ikke finde egenskaber, nogen finder ud af, hvordan man navigerer til den listede side

Sushil 03/14/2014.

Dette synes at være et problem i dit tilfælde. Den relative vej til din aktivitet i manifest er ikke korrekt:

 

erstatt dette med:

 

eller

 
1 comments
1 Karthik Sivam 03/14/2014
Jeg har prøvet begge, det viser den samme undtagelse.

Akash Bisariya 03/06/2017.

Jeg bør forstå problemet ved blot at se

dex errors

Men det tog halv dag at løse problemet.
Jeg løser dette ved at følge android-udvikleres side instruktion: https://developer.android.com/studio/build/multidex.html

Føj først dette til gradle.build-filen:

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

    // Enabling multidex support.
    multiDexEnabled true
}

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

Udvid derefter Application class (eller erklære applikationsklassen i AndroidManifest.xml eller override attachBaseContext() -funktionen) med MultiDexApplication klassen som angivet på ovenstående link.

Det er alt, og det løste problemet.

4 comments
1 milosmns 08/30/2016
Tilføjelse af multi-dex er kun nyttig, når du passerer referencegrænsen (56k), og den er very ustabil og very upålidelig før lollipop. Dette bør bruges til at løse problemer som en sidste udvej.
Akash Bisariya 08/30/2016
så hvad skal der være løsningen i henhold til dig
milosmns 08/30/2016
Jeg siger bare, at multi-dex forårsager flere problemer end det hjælper, hvilket tydeligt fremgår af udviklerens hjemmeside. Jeg ville ikke være her på udkig efter et svar, hvis jeg havde en, ville jeg?
Akash Bisariya 08/30/2016
Ok tak for info. Opdater venligst her, hvis du fandt en god løsning, ville det være en stor hjælp.

V. Kalyuzhnyu 07/07/2016.

Sletning af app på enhed og rengøring af projekt virker for mig


crazyjune 06/13/2014.
  1. Slet mappen til bin
  2. ændre rækkefølgen af ​​biblioteker
  3. rengør og genopbygge

arbejdede for mig.


Ali Gürelli 10/13/2016.

Jeg løst det ved at bruge: ./gradlew --stop kommando i android studio terminal. Efter udfør denne kommando så rengør og genopbygge projekt.


Redman 01/05/2017.

For enhver, der har multidex aktiver, skriv dette

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'
} 

skriv en klasse EnableMultiDex som nedenfor

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();

    }
} 

og i AndroidManifest.xml skriv dette className inde i applikationstagget

 

Ashik Abbas 07/26/2017.

Jeg forsøgte alle mulige muligheder, men resultatet er nul. Endelig fandt jeg den rigtige løsning, som er til gavn for mig. Bare gå for at deaktivere Instant Run Gå til File -> Settings -> Build, Execution, Deployment -> Instant Run -> Fjern markeringen i afkrydsningsfeltet for øjeblikkelig kørsel . Kør din app en gang, og denne apk-fil fungerer korrekt.


Walking Code 05/05/2014.

Bare Skift dit mappenavn fra lib til libs ,

Derefter vil du se nogle fejlmærkninger i dit projekt, for at løse dette rightClick on project>

Properties > Java Build Path > libraries :

Fjern alt biblioteket med røde mærker på det, og apply > ok > derefter apply > ok > derefter clean your project . TADA se den magiske :)

1 comments
Shubham 10/27/2015
mappenavn er kun libs

Tere Bentikh 09/29/2015.

efter at jeg prøvede de givne svar, fandt jeg ud af en anden grund til den samme undtagelse, at jeg måtte tilføje biblioteket, jeg bruger manuelt til mit hovedbibliotek gennem

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 

før denne løsning brugte jeg "Fix Project Setup" fra inde i .java filen i formørkelse, men det fungerede ikke, så jeg var nødt til at tilføje det manuelt her og det fungerede


dees91 11/21/2016.

Hvis du modtager denne fejl efter fjernelse af gradvis afhængighed, skal du tjekke dit manifest og sørge for, at du har fjernet alle poster, der svarer til denne afhængighed.

1 comments
Petter Friberg 11/21/2016
Tilføj venligst ikke det samme svar på flere spørgsmål. Besvar den bedste og marker resten som dubletter. Se Er det acceptabelt at tilføje et duplikat svar på flere spørgsmål?

Når du bruger multidex, så prøv at udvide din applikationsklasse med MultiDexAppication i stedet for Application og overstyr under metode, der kræves til Android under 5,0 (fordi 5.0 og derover understøtter multidex)

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

og tilføj dette i afhængigheder

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

Shivegeeky 06/23/2017.

I henhold til min understading får jeg problemet efter opdatering android studio 2.1 til 2.3 på grund af den øjeblikkelige funktion, vil min applikation ikke køre, når jeg kopierer apk fra output og indsættes i sdcard. For dette problem, jeg bygger apk fra build option gør bygge apk i android studio.

Related questions

Hot questions

Language

Popular Tags