java.lang.ClassNotFoundException: Ei löytänyt luokasta polkua: dexpathlist

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

Olen parhaillaan tekemässä projektia, jossa minun on käytettävä puhtaasti natiiviä ndk: tä. Se toimi, kun yritän käyttää helloworld-esimerkkiä Irrlicht-moottorilähteestä. Sitten yritän käyttää sitä projektissani saman esimerkin muodon mukaisesti. Mutta sain:

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

projektin aikana.

Tässä on minun main.cpp-tiedosto:

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

#loppu Jos

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) 

Ja olen antanut toiminnan nimi AndroidManifest.xml:

...                 

Mikä on virhe täällä? Lähetän täyden koodin, jos se on varovainen.

4 Comments
Siddharth_Vyas 03/14/2014
Käytätkö ulkoisia jar-tiedostoja?
Karthik Sivam 03/14/2014
@SiddharthVyas Ei, en käytä ulkoisia jar-tiedostoja tässä.
1 Igor Ganapolsky 08/09/2016
Onko sovelluksesi monisekoitettu? Jos näin on, niin tämä selittää ongelman.
j2emanue 07/05/2017
kun tein allekirjoitetun APK: n, tämä virhe ei tapahtunut. vain virheenkorjaus

13 Answers


mnsalim 05/23/2017.

Minulla oli vastaava ongelma, tässä on ratkaisu:

  1. Napsauta hiiren oikealla painikkeella projektia ja valitse Properties .
  2. Valitse Java Build Path vasemmalla olevasta valikosta.
  3. Valitse Order and Export -välilehti.
  4. Luettelosta varmista, että projektissa lisätyt kirjastot tai ulkoiset purkit on checked .
  5. Lopuksi, puhdista projektisi ja suorita.

Voit myös tarkistaa tämän vastauksen.

4 comments
1 FoxDonut 11/06/2016
Tämä on oikea ratkaisu kysymykseen. Olen testannut tämän libgdx-pelilläni samoilla virheillä kuin yllä. Löysin nämä virheet käyttämällä puhelimella luodun lokin (samsung galaxy S6). Kun sovellin tätä ratkaisua, kaikki ongelmani ratkaistiin.
2 Zin Min 03/25/2017
En löydä ominaisuuksia oikealta napsautukselta projektista. Voi olla, että olen tyhmä. :(
2 user3036320 04/19/2017
näytä Android-studioratkaisu ...
2 Skyler 07/08/2017
En myöskään löydä ominaisuuksia, kuka tahansa selvittää, miten navigoidaan luetellulle sivulle

Sushil 03/14/2014.

Tämä näyttää olevan ongelma teidän tapauksessanne. Toiminnon suhteellinen polku manifestissa ei ole oikea:

 

korvata tämä seuraavalla tavalla:

 

tai

 
1 comments
1 Karthik Sivam 03/14/2014
Olen kokeillut molempia, sillä on sama poikkeus.

Akash Bisariya 03/06/2017.

Minun pitäisi ymmärtää ongelma vain näkemällä

dex errors

Mutta kesti puolen päivän korjaamaan asia.
Korjaa tämä seuraavien Android-kehittäjien sivujen ohjeiden mukaisesti: https://developer.android.com/studio/build/multidex.html

Lisää tämä ensin gradle.build-tiedostoon:

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

    // Enabling multidex support.
    multiDexEnabled true
}

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

Laajenna Sovellusluokka (tai ilmoittakaa sovellusluokka AndroidManifest.xml tai override attachBaseContext() -toiminto MultiDexApplication luokkaan yllä olevan linkin ohjeiden mukaisesti.

Se on kaikki ja se ratkaisi ongelman.

4 comments
1 milosmns 08/30/2016
Multi-dexin lisääminen on hyödyllistä vain, kun siirrät viitelaskurin rajan (56 k), ja se on very epävakaa ja very epäluotettava ennen Lollipopia. Tätä olisi käytettävä ratkaisemaan ongelmat viimeisenä keinona.
Akash Bisariya 08/30/2016
niin mikä olisi ratkaisu teidän mukaan
milosmns 08/30/2016
Sanon vain, että multi-dex aiheuttaa enemmän ongelmia kuin se auttaa, mikä on selkeästi mainittu kehittäjän verkkosivuilla. En olisi täällä etsimässä vastausta, jos saisin yhden, olisiko minä?
Akash Bisariya 08/30/2016
Ok kiitos infoista, Päivitä täällä, jos löysit hyvän ratkaisun, se olisi hyvä apu.

V. Kalyuzhnyu 07/07/2016.

Sovelluksen poistaminen laitteesta ja projektien puhdistus minulle


crazyjune 06/13/2014.
  1. poista bin-kansio
  2. muuttaa kirjastojen järjestystä
  3. puhdas ja kunnostettava

työskenteli minulle.


Ali Gürelli 10/13/2016.

Olen ratkaissut sen käyttämällä: ./gradlew --stop komentoa android-studioterminaalissa. Kun suoritat tämän komennon, puhdista ja rakenna projekti uudelleen.


Redman 01/05/2017.

Jokaiselle, jolla on multidex-mahdollisuus, kirjoita tämä

sisällä 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'
} 

kirjoita luokka EnableMultiDex kuten alla

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

    }
} 

ja AndroidManifest.xml kirjoita tämä className sisäiseen Application tag className

 

Ashik Abbas 07/26/2017.

Yritin kaikkia mahdollisia vaihtoehtoja, mutta tulos on nolla. Lopulta löysin oikean ratkaisun, joka on hyödyllinen minulle. Siirry pikaviestien poistoon. Siirry kohtaan Tiedosto -> Asetukset -> Rakenna, Suorita, Käytä -> Pikakäynnistys -> Poista valintaruudun valinta hetkeksi . Suorita sovelluksesi kerran ja tämä apk-tiedosto toimii oikein ..


Walking Code 05/05/2014.

Vain Muuta kansion nimeä lib libs ,

Sitten näet joitakin virheitä projektissasi, jotta voit ratkaista tämän oikean napsauttamallaKlikkaa projektissa>

Properties > Java Build Path > libraries :

Poista kaikki kirjasto punaisilla merkinnöillä ja pistä sitten apply > ok > sen jälkeen clean your project . TADA nähdä taikaa :)

1 comments
Shubham 10/27/2015
kansion nimi on vain libs

Tere Bentikh 09/29/2015.

kun yritin antaa vastauksia, löysin toisen syyn samalle poikkeukselle, että minun oli lisättävä kirjastoni, jota käytän manuaalisesti pääkirjastoni kautta

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 

Ennen tätä ratkaisua käytin "Fix Project setup" .java-tiedostossa eclipse-ohjelmassa, mutta tämä ei toiminut, joten jouduin lisäämään sen manuaalisesti täällä ja se toimi


dees91 11/21/2016.

Jos saat tämän virheen, kun olet poistanut joitain luokkien riippuvuuden, tarkista luettelo ja varmista, että olet poistanut kaikki kyseistä riippuvuutta vastaavat merkinnät.

1 comments
Petter Friberg 11/21/2016
Älä lisää samaa vastausta useisiin kysymyksiin. Vastaa parhaaseen ja lippua loput kopioina. Katso Onko hyväksyttävää lisätä kaksinkertainen vastaus useisiin kysymyksiin?

Kun käytät multidexia, yritä laajentaa sovellusluokasi MultiDexAppication-sovelluksen sijaan Sovelluksen sijaan ja ohittaaksesi tämän menetelmän alle vaaditun menetelmän alle 5.0 (koska 5.0: n ja sitä vanhempana oleva tuki multidexille)

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

ja riippuvuudet lisää tämä

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

Shivegeeky 06/23/2017.

Kuten per minun understading saan ongelman päivityksen jälkeen android studio 2.1-23 johtuen instant ominaisuus minun hakemus ei toimi, kun kopioin apk tuotosta ja laittaa sdcard. Tätä ongelmaa varten rakentain apk from build -vaihtoehdosta do build apk in android studio.

Related questions

Hot questions

Language

Popular Tags