Saat ini saya sedang mengerjakan proyek di mana saya harus menggunakan ndk murni asli. Itu bekerja ketika saya mencoba menjalankan contoh helloworld dari sumber mesin Irrlicht. Kemudian saya mencoba menggunakannya dalam proyek saya mengikuti format yang sama dari contoh itu. Tapi 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]]
saat menjalankan proyek saya.
Ini file main.cpp saya:
#include <android/log.h>
#include <jni.h>
#include <android_native_app_glue.h>
#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 Aktivitas di AndroidManifest.xml:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.irrlicht.example1"
android:versionCode="1"
android:versionName="1.0">
...
<application android:icon="@drawable/irr_icon" android:label="HelloWorldMobile1" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:debuggable="true">
<activity android:name="android.app.POMActivity"
android:label="HelloWorldMobile1"
android:launchMode="singleTask"
android:configChanges="orientation|keyboardHidden"
android:screenOrientation="portrait"
android:clearTaskOnLaunch="true">
<meta-data android:name="android.app.lib_name" android:value="HelloWorldMobile1" />
Apa kesalahan yang saya lakukan di sini? Saya akan memposting kode lengkap jika perlu.
java
android
c++
android-ndk
Karthik Sivam
sumber
sumber
Jawaban:
Saya mencoba semua opsi yang mungkin tetapi hasilnya nol. Akhirnya saya menemukan solusi yang tepat yang sangat membantu bagi saya. Pergi saja untuk menonaktifkan Run Instan Buka File -> Pengaturan -> Build, Eksekusi, Deployment -> Run Instan -> Hapus centang pada kotak centang untuk menjalankan instan . Jalankan aplikasi Anda sekali dan file apk ini berfungsi dengan baik ..
sumber
Saya punya masalah serupa, inilah solusi saya:
Anda juga dapat memeriksa jawaban ini .
sumber
Ini tampaknya menjadi masalah dalam kasus Anda. Jalur relatif aktivitas Anda dalam manifes tidak benar:
ganti ini dengan:
atau
sumber
Penghapusan aplikasi pada perangkat dan pembersihan proyek berfungsi untuk saya
sumber
react-native run-android
Saya harus memahami masalahnya hanya dengan melihat
Tapi butuh setengah hari untuk memperbaiki masalah ini.
Saya memperbaikinya dengan mengikuti instruksi halaman pengembang android: https://developer.android.com/studio/build/multidex.html
Pertama tambahkan ini ke file gradle.build:
Kemudian perluas kelas Aplikasi dengan
MultiDexApplication
kelas seperti yang diperintahkan pada tautan di atas (atau nyatakan kelas aplikasi dalamAndroidManifest.xml
atau timpaattachBaseContext()
fungsi jika tidak memungkinkan untuk memperluas kelas aplikasi).Itu saja dan itu memecahkan masalah.
sumber
Coba saja Clean Project & Rebuild Project .
sumber
Pengecualian ini juga dapat terjadi ketika Anda memiliki tampilan khusus di tata letak Anda seperti ini:
dan Anda mengubah nama paket view dari "com.example" menjadi sesuatu yang berbeda, tetapi Anda lupa mengubahnya dalam tata letak juga.
sumber
Jika proyek dikompilasi sebelumnya, Anda dapat mencoba menghapus cache menggunakan:
./gradlew clean
atau
./gradlew cleanBuildCache
atau untuk windows
gradlew cleanBuildCache
https://developer.android.com/studio/build/build-cache.html
sumber
saya menyelesaikannya dengan menggunakan:
./gradlew --stop
perintah di terminal android studio. Setelah melakukan perintah ini kemudian bersihkan dan bangun kembali proyek.sumber
bekerja untukku.
sumber
Untuk siapa pun yang memiliki multidex memungkinkan menulis ini
di dalam build.gradle
tulis kelas
EnableMultiDex
seperti di bawah inidan dalam
AndroidManifest.xml
tulis className ini di dalam tag Aplikasisumber
enableMultiDex
pengaruhnya? Dalam kasus sayajavaMaxHeapSize "4g"
tidak membantu.MultiDexApplication
. Perlu jika Anda ingin menggunakan multidexMultiDexApplication
atauattachBaseContext
(lihat developer.android.com/studio/build/multidex ).Saya menghadapi Masalah ini beberapa kali dan semuanya diselesaikan dengan menonaktifkan Instant Run .
sumber
Kita tidak perlu memiliki kelas Aplikasi khusus yang memperluas MultiDexApplication . Sebagai gantinya, kita dapat memiliki seperti ini di AndroidManifest.xml
Dan bersamaan dengan ini di build.gradle (Module: app),
Terima kasih.
sumber
Ketika Anda menggunakan multidex, maka cobalah untuk memperluas 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 di atas mendukung multidex)
dan dalam dependensi tambahkan ini
sumber
Application
. Mengapa kita harus mengganti dalam kasusMultiDexAppication
?Cukup Ubah nama folder Anda dari
lib
menjadilibs
,Kemudian Anda akan melihat beberapa tanda kesalahan dalam proyek Anda, untuk menyelesaikan ini klik kanan pada proyek>
Properties > Java Build Path > libraries
:Hapus semua perpustakaan dengan tanda merah di atasnya, lalu
apply > ok >
setelah itu bersihkan proyek Anda . TADA melihat keajaiban :)sumber
Dalam kasus saya, masalah ini muncul karena Kotlin. Dalam kode saya yang ada ada kelas yang ditulis Kotlin. Saya membangun aplikasi, itu menginstal dan segera setelah aktivitas pertama membuka aplikasi macet. di logcat kesalahan ini sedang ditampilkan. Saya kemudian memperbarui versi Kotlin saya dari situs web Kotlin dalam file app gradle. Bangun aplikasinya lagi dan itu berfungsi dengan baik.
sumber
Salah satu alasan yang mungkin adalah jalur aktivitas yang salah dalam file Aplikasi AndroidManifest.xml. Daftarkan aktivitas dengan di AndroidManifest.xml Anda dengan jalur relatif penuh seperti di bawah ini.
sumber
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
sebelum solusi ini, saya menggunakan "Perbaiki pengaturan Proyek" dari dalam file .java di gerhana, tetapi ini tidak berhasil, jadi saya harus menambahkannya secara manual di sini dan itu berfungsi
sumber
Saya mendapatkan crash ini hanya pada perangkat Samsung Lollipop dan solusi ini bekerja untuk saya.
Saya memposting jawaban ini di sini karena pertanyaan ini adalah hasil pencarian peringkat tertinggi di Google untuk kerusakan ini dan tidak ada jawaban di atas yang berfungsi untuk saya.
sumber
Solusi berikut ini bekerja untuk saya ...
Saya mencoba semua yang disebutkan di atas tetapi masih belum menjalankan aplikasi saya. Saya memiliki aplikasi asli yang berjalan pada versi terbaru dari gradle 4+ dan android studio.
Saya mempunyai masalah di mana jika saya menjalankan react-native run-android itu gagal dengan masalah yang mengatakan tidak dapat menemukan kelas MainApplication ... yaitu ClassNotFoundException
Saya bisa menyelesaikan masalah ini ketika saya memperbarui gradle.properties saya untuk menggunakan D8 kompiler.
Saya tambahkan:
android.enableD8 = benar
ke properti gradle saya
Detail Dokumen di sini: https://android-developers.googleblog.com/2017/08/next-generation-dex-compiler-now-in.html
sumber
Ashik abbas menjawab (menonaktifkan Instant Run ) berfungsi untuk saya, tetapi saya perlu Instant Run , akhirnya saya menemukan solusi yang bermanfaat bagi saya. cukup nonaktifkan minifyEnabled . pergi ke build.gradle (Module: app) di blok debug dan nonaktifkan minifyEnabled :
sumber
Sesuai pemahaman saya, saya mendapatkan masalah setelah memperbarui android studio 2.1 ke 2.3 karena fitur instan aplikasi saya tidak akan berjalan ketika saya menyalin apk dari output dan dimasukkan ke dalam sdcard. Untuk masalah ini saya membangun apk dari opsi membangun do apk membangun di studio android.
sumber
Jika Anda diaktifkan
minifyEnabled
danshrinkResources
benar dalam file gradle aplikasi Anda. Anda perlu menambahkan baris berikut dalamproguard-rules.pro
filekarena minification dihapus beberapa kelas penting di file apk kami.
sumber
Saya punya masalah ini sebelumnya dan komentar di sini membantu di masa lalu tetapi kali ini tidak. saya memeriksa konfigurasi proguard saya dan saya menghapus baris-baris berikut dan kemudian bekerja sehingga proguard dapat ada hubungannya dengan kesalahan ini:
sumber
Dalam kasus saya, saya menggunakan perpustakaan namespace lama sementara proyek saya dibuat menggunakan androidx satu.
Solusinya adalah untuk mengganti
android.support.design.widget.BottomNavigationView
komponen dengan yang tepat untuk melarikan diri dari dukungan perpustakaan:com.google.android.material.bottomnavigation.BottomNavigationView
.sumber
dalam kasus saya, saya mendefinisikan Kegiatan di
Manifest.xml
dan lupa untuk membuatactivity
. Jadi saya membuat Activity dan mendefinisikannyamanifest
dan kesalahan saya terpecahkan!sumber
Jika Anda menerima kesalahan ini setelah menghapus beberapa dependensi gradle, periksa manifes Anda dan pastikan bahwa Anda menghapus semua entri yang terkait dengan ketergantungan itu.
sumber
Bagi saya masalah muncul setelah saya membuat APK yang ditandatangani. Untuk memperbaikinya, saya membuat apk, debug baru menggunakan Run / Build APK. Setelah itu, Jalankan (cmd + r) berfungsi lagi tanpa kesalahan ini.
sumber
Saya menghadapi masalah yang sama. Saya mencoba segala sesuatu yang mungkin selama sehari, tetapi tidak ada yang berhasil. Ketergantungan yang menyebabkan masalah menggunakan kompilasi SDK yang lebih rendah, SDK target dan min SDK. Saya membuat modul perpustakaan untuk proyek, menyalin semua sumber dan mencocokkan versi SDK dengan versi SDK aplikasi. Dan akhirnya itu bekerja seperti pesona.
sumber
Saya memiliki kesalahan yang sama dan beberapa jawaban menyesatkan saya pada masalah pemula. Saya memiliki paket yang salah di deskriptor tampilan khusus saya seperti di bawah ini. Saya harap ini membantu seseorang.
sumber