java.lang.ClassNotFoundException: Klasse op pad niet gevonden: dexpathlist

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

Ik ben momenteel bezig met een project waarin ik puur native ndk moet gebruiken. Het werkte toen ik een helloworld-voorbeeld uit Irrlicht-motorbron probeerde te gebruiken. Dan probeer ik het in mijn project te gebruiken volgens dezelfde indeling van dat voorbeeld. Maar ik kreeg:

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

tijdens het uitvoeren van mijn project.

Hier is mijn main.cpp bestand:

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

#stop als

in 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) 

En ik heb Activiteitsnaam gegeven in AndroidManifest.xml:

...                 

Wat is de fout die ik hier doe? Ik zal de volledige code plaatsen indien nodig.

4 Comments
Siddharth_Vyas 03/14/2014
Gebruikt u externe jar-bestanden?
Karthik Sivam 03/14/2014
@SiddharthVyas Nee, ik gebruik hierin geen externe jar-bestanden.
1 Igor Ganapolsky 08/09/2016
Is uw toepassing multi-dexed? Als dat zo is, dan verklaart dat het probleem.
j2emanue 07/05/2017
toen ik een ondertekende apk deed, gebeurde deze fout niet. gewoon debuggen

13 Answers


mnsalim 05/23/2017.

Ik had een soortgelijk probleem, hier is mijn oplossing:

  1. Klik met de rechtermuisknop op uw project en selecteer Properties .
  2. Selecteer Java Build Path in het menu aan de linkerkant.
  3. Selecteer het tabblad Order and Export .
  4. Zorg ervoor dat de bibliotheken of externe potten die u aan uw project hebt toegevoegd, worden checked .
  5. Eindelijk, maak je project & run schoon.

U kunt dit antwoord ook controleren.

4 comments
1 FoxDonut 11/06/2016
Dit is de juiste oplossing voor de vraag. Ik heb dit getest met mijn libgdx-spel met dezelfde fouten als hierboven. Ik vond deze fouten door het logboek te gebruiken dat met mijn telefoon is gegenereerd (Samsung Galaxy S6). Nadat ik deze oplossing had toegepast, waren al mijn problemen opgelost.
2 Zin Min 03/25/2017
Ik kan Properties niet vinden met de rechtermuisknop van het project. Misschien ben ik stom. :(
2 user3036320 04/19/2017
toon alstublieft de Android studio-oplossing ...
2 Skyler 07/08/2017
Ik kan ook geen eigenschappen vinden, iedereen weet hoe hij naar de vermelde pagina moet navigeren

Sushil 03/14/2014.

Dit lijkt een probleem te zijn in jouw geval. Het relatieve pad van uw activiteit in manifest is niet correct:

 

vervang dit door:

 

of

 
1 comments
1 Karthik Sivam 03/14/2014
Ik heb het allebei geprobeerd, het toont dezelfde uitzondering.

Akash Bisariya 03/06/2017.

Ik zou het probleem moeten begrijpen door het alleen maar te zien

dex errors

Maar het duurde een halve dag om het probleem op te lossen.
Ik repareer dit door de instructies van de Android-ontwikkelaarspagina te volgen: https://developer.android.com/studio/build/multidex.html

Voeg dit eerst toe aan het bestand gradle.build:

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

    // Enabling multidex support.
    multiDexEnabled true
}

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

override attachBaseContext() vervolgens de toepassingsklasse (of declareer de toepassingsklasse in AndroidManifest.xml of override attachBaseContext() functie override attachBaseContext() ) door de klasse MultiDexApplication zoals aangegeven op de bovenstaande koppeling.

Dat is alles en het loste het probleem op.

4 comments
1 milosmns 08/30/2016
Het toevoegen van multi-dex is alleen nuttig als u de limiet voor het aantal referenties overschrijdt (56k) en het is very onstabiel en very onbetrouwbaar voorafgaand aan Lollipop. Dit moet worden gebruikt om problemen als laatste redmiddel op te lossen.
Akash Bisariya 08/30/2016
dan wat volgens jou de oplossing zou moeten zijn
milosmns 08/30/2016
Ik zeg alleen dat multi-dex meer problemen veroorzaakt dan dat het helpt, wat duidelijk wordt vermeld op de website van de ontwikkelaar. Ik zou hier niet op zoek zijn naar een antwoord als ik er een had, toch?
Akash Bisariya 08/30/2016
Ok bedankt voor de info, update hier als je een goede oplossing hebt gevonden, het zou een grote hulp zijn.

V. Kalyuzhnyu 07/07/2016.

Het verwijderen van de app op het apparaat en het opschonen van het project werkt voor mij


crazyjune 06/13/2014.
  1. verwijder de bin-map
  2. verander de volgorde van de bibliotheek
  3. reinigen en opnieuw opbouwen

werkte voor mij.


Ali Gürelli 10/13/2016.

ik loste het op met: ./gradlew --stop commando in android studio terminal. Nadat u deze opdracht hebt uitgevoerd, maakt u het project schoon en bouwt u het opnieuw op.


Redman 01/05/2017.

Voor iedereen die multidex gebruikt, schrijf dit

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

schrijf een klasse EnableMultiDex zoals hieronder

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

    }
} 

en schrijf in AndroidManifest.xml deze className in de applicatielabel

 

Ashik Abbas 07/26/2017.

Ik heb alle mogelijke opties geprobeerd maar het resultaat is nul. Eindelijk vond ik de juiste oplossing die voor mij nuttig is. Schakel Instant Run direct uit, klik op Bestand -> Instellingen -> Build, Execution, Deployment -> Instant Run -> Schakel het selectievakje uit voor direct uitvoeren . Voer uw app één keer uit en dit apk-bestand werkt correct ..


Walking Code 05/05/2014.

Wijzig gewoon uw mapnaam van lib naar libs ,

Dan zult u enkele foutmeldingen in uw project tegenkomen, om dit recht op te lossen. Klik op project>

Properties > Java Build Path > libraries :

Verwijder alle bibliotheek met rode markeringen erop en apply > ok > na het clean your project . TADA zie de magie :)

1 comments
Shubham 10/27/2015
mapnaam is alleen libs

Tere Bentikh 09/29/2015.

nadat ik de gegeven antwoorden had geprobeerd, ontdekte ik een andere reden voor dezelfde uitzondering, dat ik de bibliotheek die ik handmatig gebruik toe te voegen aan mijn hoofdbibliotheek via

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 

voor deze oplossing gebruikte ik de "Fix Project setup" vanuit het .java-bestand in eclipse, maar dit werkte niet, dus ik moest het hier handmatig toevoegen en het werkte


dees91 11/21/2016.

Als u deze foutmelding ontvangt nadat u enige graduele afhankelijkheid hebt verwijderd, controleert u uw manifest en controleert u of u alle items hebt verwijderd die overeenkomen met die afhankelijkheid.

1 comments
Petter Friberg 11/21/2016
Voeg alsjeblieft niet hetzelfde antwoord toe aan meerdere vragen. Beantwoord de beste en markeer de rest als duplicaten. Zie Is het acceptabel om een ​​duplicaat antwoord op meerdere vragen toe te voegen?

Wanneer u multidex gebruikt, probeer dan uw toepassingsklasse uit te breiden met MultiDexAppication in plaats van Application en vervang de onderstaande methode die vereist is voor Android onder 5.0 (omdat 5.0 en hoger ondersteuning voor de multidex)

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

en voeg afhankelijkheden toe

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

Shivegeeky 06/23/2017.

Vanaf mijn understading krijg ik het probleem na update android studio 2.1 tot 2.3 vanwege de directe functie die mijn applicatie niet zal uitvoeren als ik de APK van de uitvoer kopieer en in de sdcard plaats. Voor dit probleem bouw ik de apk from build optie build apk in android studio.

Related questions

Hot questions

Language

Popular Tags