java.lang.ClassNotFoundException: Tidak menemukan kelas di jalan: dexpathlist

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

Saat ini saya mengerjakan sebuah proyek di mana saya harus menggunakan ndk asli murni. Ini bekerja ketika saya mencoba menjalankan contoh helloworld dari sumber mesin Irrlicht. Lalu aku mencoba menggunakannya dalam proyek saya mengikuti format yang sama dari contoh itu. Tapi aku punya:

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

sambil menjalankan proyek saya

Berikut adalah file main.cpp saya:

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

#berakhir jika

di 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 Activity di AndroidManifest.xml:

...                 

Apa kesalahan yang saya lakukan di sini? Saya akan posting kode penuh jika necassary.

4 Comments
Siddharth_Vyas 03/14/2014
Apakah Anda menggunakan file jar eksternal?
Karthik Sivam 03/14/2014
@SiddharthVyas Tidak, saya tidak menggunakan file jar eksternal dalam hal ini.
1 Igor Ganapolsky 08/09/2016
Apakah aplikasi Anda multi-dexed? Jika demikian, maka itu menjelaskan masalahnya.
j2emanue 07/05/2017
Ketika saya melakukan perintah yang ditandatangani, kesalahan ini tidak terjadi. hanya debug

13 Answers


mnsalim 05/23/2017.

Saya memiliki masalah yang sama, inilah solusinya:

  1. Klik kanan pada proyek Anda dan pilih Properties .
  2. Pilih Java Build Path dari menu di sebelah kiri.
  3. Pilih tab Order and Export .
  4. Dari daftar pastikan perpustakaan atau toples eksternal yang Anda tambahkan ke proyek Anda checked .
  5. Akhirnya, bersihkan project & run anda.

Anda juga bisa memeriksa jawaban ini .

4 comments
1 FoxDonut 11/06/2016
Ini adalah solusi tepat untuk pertanyaan itu. Saya telah menguji ini dengan permainan libgdx saya dengan kesalahan yang sama ditemukan di atas. Saya menemukan kesalahan ini dengan menggunakan log yang dihasilkan dengan ponsel saya (samsung galaksi S6). Begitu saya menerapkan solusi ini, semua masalah saya telah terpecahkan.
2 Zin Min 03/25/2017
Saya tidak dapat menemukan Properties dari klik kanan proyek. Mungkin saya bodoh. :(
2 user3036320 04/19/2017
tolong tunjukkan solusi studio android ...
2 Skyler 07/08/2017
Saya juga tidak dapat menemukan properti, ada yang tahu cara menavigasi ke halaman yang tercantum

Sushil 03/14/2014.

Hal ini tampaknya menjadi masalah dalam kasus Anda. Jalan relatif aktivitas Anda dalam manifes tidak benar:

 

ganti ini dengan:

 

atau

 
1 comments
1 Karthik Sivam 03/14/2014
Saya sudah mencoba keduanya, ini menunjukkan pengecualian yang sama.

Akash Bisariya 03/06/2017.

Saya harus mengerti masalahnya hanya dengan melihat

dex errors

Tapi butuh waktu setengah hari untuk memperbaiki masalah ini.
Saya memperbaikinya dengan mengikuti petunjuk pengembang halaman android: https://developer.android.com/studio/build/multidex.html

Pertama tambahkan ini ke file gradle.build:

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

    // Enabling multidex support.
    multiDexEnabled true
}

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

Kemudian MultiDexApplication kelas Aplikasi (atau nyatakan kelas aplikasi di AndroidManifest.xml atau override attachBaseContext() fungsi override attachBaseContext() ) dengan kelas MultiDexApplication seperti yang diinstruksikan pada tautan di atas.

Itu saja dan itu memecahkan masalah.

4 comments
1 milosmns 08/30/2016
Menambahkan multi-dex berguna hanya bila Anda melewati batas referensi (56k), dan very tidak stabil dan very tidak dapat diandalkan sebelum Lollipop. Ini harus digunakan untuk memperbaiki masalah sebagai upaya terakhir.
Akash Bisariya 08/30/2016
maka apa yang harus menjadi solusi sesuai keinginan anda
milosmns 08/30/2016
Saya hanya mengatakan bahwa multi-dex menyebabkan lebih banyak masalah daripada membantu, yang dinyatakan dengan jelas di situs pengembang. Saya tidak akan berada di sini mencari jawaban jika saya memilikinya, bukan?
Akash Bisariya 08/30/2016
Ok thanks for the info, Silahkan update disini jika anda menemukan solusi yang bagus, akan sangat membantu.

V. Kalyuzhnyu 07/07/2016.

Penghapusan aplikasi pada perangkat dan pembersihan pekerjaan proyek untuk saya


crazyjune 06/13/2014.
  1. hapus folder bin
  2. ubah urutan perpustakaan
  3. bersih dan membangun kembali

bekerja untuk saya


Ali Gürelli 10/13/2016.

Saya memecahkannya dengan menggunakan perintah : ./gradlew --stop di terminal studio android. Setelah melakukan perintah ini maka bersihkan dan bangun kembali proyek.


Redman 01/05/2017.

Bagi siapa saja yang memiliki multidex memungkinkan 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 ini

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 tulislah className ini di dalam tag Aplikasi

 

Ashik Abbas 07/26/2017.

Saya mencoba semua opsi yang mungkin tapi hasilnya nol. Akhirnya saya menemukan solusi yang benar yang sangat membantu saya. Cukup buka untuk menonaktifkan Instant Run Buka File -> Settings -> Build, Execution, Deployment -> Instant Run -> Hapus centang pada checkbox untuk instant run . Jalankan aplikasi Anda satu kali dan file apk ini bekerja dengan baik ..


Walking Code 05/05/2014.

Ganti saja nama folder anda dari lib ke libs ,

Kemudian Anda akan melihat beberapa kesalahan dalam proyek Anda, untuk menyelesaikan masalah rightClick on project> ini

Properties > Java Build Path > libraries :

Hapus semua perpustakaan dengan tanda merah di atasnya, lalu apply > ok > setelah itu clean your project . TADA melihat keajaibannya :)

1 comments
Shubham 10/27/2015
nama folder hanya libs

Tere Bentikh 09/29/2015.

Setelah saya mencoba jawaban yang diberikan, saya menemukan alasan lain untuk Pengecualian yang sama, bahwa saya harus menambahkan 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 solusi ini, saya menggunakan "Fix Project setup" dari dalam file .java dalam gerhana, tapi ini tidak berhasil, jadi saya harus menambahkannya secara manual di sini dan berhasil.


dees91 11/21/2016.

Jika Anda menerima kesalahan ini setelah menghapus beberapa ketergantungan bertahap, periksa manifes Anda dan pastikan bahwa Anda menghapus semua entri yang sesuai dengan ketergantungan itu.

1 comments
Petter Friberg 11/21/2016
Tolong jangan tambahkan jawaban yang sama untuk beberapa pertanyaan. Jawab yang terbaik dan tandai sisanya sebagai duplikat. Lihat apakah bisa menambahkan jawaban duplikat beberapa pertanyaan?

Bila Anda menggunakan multidex, cobalah untuk memperpanjang kelas aplikasi Anda dengan MultiDexAppication alih-alih Aplikasi dan mengganti metode di bawah ini yang diperlukan untuk Android di bawah 5.0 (karena 5.0 dan yang lebih tinggi mendukung multidex)

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

dan dalam ketergantungan tambahkan ini

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

Shivegeeky 06/23/2017.

Sesuai dengan pengetahuan saya, saya mendapatkan masalah ini setelah mengupdate android studio 2.1 menjadi 2.3 karena fitur instan aplikasi saya tidak akan berjalan saat saya menyalin APK dari output dan dimasukkan ke dalam sdcard. Untuk masalah ini saya membangun apk dari build option lakukan build apk di android studio.

Related questions

Hot questions

Language

Popular Tags