java.lang.ClassNotFoundException: Tidak jumpa kelas di laluan: dexpathlist

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

Saya sedang mengerjakan projek di mana saya perlu menggunakan ndk asli semata-mata. Ia berfungsi apabila saya cuba menjalankan contoh helloworld dari sumber enjin Irrlicht. Kemudian saya cuba menggunakannya dalam projek saya mengikuti format yang sama contoh itu. Tetapi saya mendapat:

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

semasa menjalankan projek saya.

Inilah file utama saya.cpp:

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

#endif

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

Dan saya telah memberikan nama Aktiviti di AndroidManifest.xml:

...                 

Apakah kesilapan yang saya lakukan di sini? Saya akan menghantar kod penuh jika necassary.

4 Comments
Siddharth_Vyas 03/14/2014
Adakah anda menggunakan sebarang fail balang luar?
Karthik Sivam 03/14/2014
@SiddharthVyas Tidak, saya tidak menggunakan fail luar luar dalam ini.
1 Igor Ganapolsky 08/09/2016
Adakah permohonan anda multi-dexed? Jika ya, maka itu menjelaskan masalah itu.
j2emanue 07/05/2017
apabila saya melakukan apk yang ditandatangani, ralat ini tidak berlaku. hanya debug

13 Answers


mnsalim 05/23/2017.

Saya mempunyai masalah yang sama, berikut penyelesaian saya:

  1. Klik kanan pada projek anda dan pilih Properties .
  2. Pilih Java Build Path dari menu di sebelah kiri.
  3. Pilih tab Order and Export .
  4. Dari senarai pastikan perpustakaan atau balang luaran yang anda tambah pada projek anda checked .
  5. Akhirnya, bersihkan projek anda & jalankan.

Anda juga boleh menyemak jawapan ini .

4 comments
1 FoxDonut 11/06/2016
Ini adalah penyelesaian yang betul untuk soalan itu. Saya telah menguji ini dengan permainan libgdx saya dengan kesilapan yang sama seperti di atas. Saya dapati kesilapan ini dengan menggunakan log yang dihasilkan dengan telefon saya (samsung galaxy S6). Sebaik sahaja saya menggunakan penyelesaian ini, semua isu saya telah diselesaikan.
2 Zin Min 03/25/2017
Saya tidak dapat mencari Properties dari klik kanan projek. Mungkin saya bodoh. :(
2 user3036320 04/19/2017
sila tunjukkan penyelesaian studio android ...
2 Skyler 07/08/2017
Saya tidak dapat mencari harta sama ada, siapa tahu cara menavigasi ke halaman yang disenaraikan

Sushil 03/14/2014.

Ini seolah-olah menjadi masalah dalam kes anda. Laluan relatif aktiviti anda dalam manifes tidak betul:

 

gantikan ini dengan:

 

atau

 
1 comments
1 Karthik Sivam 03/14/2014
Saya telah mencuba kedua-duanya, ia menunjukkan pengecualian yang sama.

Akash Bisariya 03/06/2017.

Saya harus memahami masalah dengan hanya melihat

dex errors

Tetapi ia mengambil masa setengah hari untuk menyelesaikan masalah itu.
Saya membetulkannya dengan arahan halaman pemaju android berikut: https://developer.android.com/studio/build/multidex.html

Pertama tambahkan ini ke fail gradle.build:

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

    // Enabling multidex support.
    multiDexEnabled true
}

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

Kemudian melanjutkan kelas Aplikasi (atau mengisytiharkan kelas aplikasi dalam AndroidManifest.xml atau override attachBaseContext() fungsi) dengan kelas MultiDexApplication seperti yang diarahkan pada pautan di atas.

Itu sahaja dan ia menyelesaikan masalah itu.

4 comments
1 milosmns 08/30/2016
Menambah multi-dex berguna hanya apabila anda meluluskan had kiraan rujukan (56k), dan ia very tidak stabil dan very tidak boleh dipercayai sebelum Lollipop. Ini harus digunakan untuk menyelesaikan masalah sebagai jalan terakhir.
Akash Bisariya 08/30/2016
maka apa yang harus menjadi penyelesaian mengikut anda
milosmns 08/30/2016
Saya hanya mengatakan bahawa multi-dex menyebabkan lebih banyak masalah daripada yang membantu, yang dinyatakan dengan jelas di laman web pemaju. Saya tidak akan berada di sini mencari jawapan jika saya mempunyai satu, adakah saya?
Akash Bisariya 08/30/2016
Ok terima kasih atas maklumat itu, Sila kemas kini di sini jika anda mendapati penyelesaian yang baik, ini akan menjadi sangat membantu.

V. Kalyuzhnyu 07/07/2016.

Pemadaman apl pada peranti dan pembersihan projek berfungsi untuk saya


crazyjune 06/13/2014.
  1. padam folder bin
  2. menukar perintah perpustakaan
  3. bersih dan membina semula

bekerja untuk saya.


Ali Gürelli 10/13/2016.

saya menyelesaikannya dengan menggunakan: ./gradlew --stop arahan di terminal studio android. Selepas melakukan arahan ini kemudian bersihkan dan kembalikan semula projek.


Redman 01/05/2017.

Bagi mana-mana orang yang mempunyai multidex aktifkan menulis ini

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

tulis kelas EnableMultiDex seperti di bawah

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

    }
} 

dan di AndroidManifest.xml tulis kelas className di dalam tag Aplikasi

 

Ashik Abbas 07/26/2017.

Saya cuba semua pilihan yang mungkin tetapi hasilnya adalah sifar. Akhirnya saya mencari penyelesaian yang betul untuk membantu saya. Hanya pergi untuk melumpuhkan Run Instan Pergi ke Fail -> Tetapan -> Bina, Pelaksanaan, Penyebaran -> Run Instan -> Nyahtanda kotak semak untuk jangka masa yang lama . Jalankan apl anda sekali dan fail apk ini berfungsi dengan betul ..


Walking Code 05/05/2014.

Hanya Tukar nama folder anda dari lib ke libs ,

Kemudian anda akan melihat beberapa tanda ralat dalam projek anda, untuk menyelesaikan ini KlikKlik pada projek>

Properties > Java Build Path > libraries :

Keluarkan semua perpustakaan dengan tanda merah di atasnya, kemudian apply > ok > setelah itu clean your project . TADA melihat keajaiban :)

1 comments
Shubham 10/27/2015
nama folder adalah libs sahaja

Tere Bentikh 09/29/2015.

selepas saya mencuba jawapan yang diberikan, saya mendapati sebab lain untuk Pengecualian yang sama, bahawa saya terpaksa menambah perpustakaan yang saya gunakan secara manual ke perpustakaan utama saya melalui

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 

sebelum penyelesaian ini, saya menggunakan "Penyetelan Projek Tetap" dari dalam .java file dalam gerhana, tetapi ini tidak berfungsi, jadi saya terpaksa menambahkan secara manual di sini dan ia berfungsi


dees91 11/21/2016.

Sekiranya anda menerima ralat ini selepas mengeluarkan beberapa kebergantungan grader, semak manifes anda dan pastikan anda mengalih keluar semua entri sepadan dengan kebergantungan tersebut.

1 comments
Petter Friberg 11/21/2016
Tolong jangan tambah jawapan yang sama kepada beberapa soalan. Jawab yang terbaik dan tandakan yang lain sebagai pendua. Lihat Adakah diterima untuk menambah jawapan pendaptaran kepada beberapa soalan?

Apabila anda menggunakan multidex, cuba cuba melanjutkan kelas permohonan anda dengan MultiDexAppication dan bukannya Permohonan dan langkau di bawah kaedah ini yang diperlukan untuk Android di bawah 5.0 (kerana sokongan 5.0 dan ke atas untuk multidex)

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

dan dalam dependensi menambah ini

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

Shivegeeky 06/23/2017.

Seperti yang saya kurangi, saya mendapat masalah selepas mengemaskini android studio 2.1 hingga 2.3 kerana ciri segera aplikasi saya tidak akan berjalan apabila saya menyalin apk dari output dan dimasukkan ke dalam sdcard. Untuk masalah ini saya membina apk dari pilihan bina buat apk di studio android.

Related questions

Hot questions

Language

Popular Tags