java.lang.ClassNotFoundException : Didn't find class on path: dexpathlist

标签 java android c++ android-ndk

我目前正在做一个项目,我必须使用纯原生 ndk。当我尝试从 Irrlicht 引擎源运行 helloworld 示例时,它起作用了。然后我尝试按照与该示例相同的格式在我的项目中使用它。但我得到了:

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

在运行我的项目时。

这是我的 main.cpp 文件:

#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");
}

#endif

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

我已经在 AndroidManifest.xml 中给出了 Activity 名称:

<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" />                     

我在这里做错了什么?如果需要,我会发布完整的代码。

最佳答案

我尝试了所有可能的选项,但结果为零。最后我找到了对我有帮助的正确解决方案。只需禁用 Instant Run 转到 File -> Settings -> Build,Execution, Deployment -> Instant Run -> 取消选中 Instant Run 复选框。运行您的应用程序一次,此 apk 文件即可正常工作..

关于java.lang.ClassNotFoundException : Didn't find class on path: dexpathlist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22399572/

相关文章:

java - Pyro4与java连接

java - 如何使用 Java Access Bridge 自动化 Java Applet?

android - 如何将现有的eclipse 项目导入android studio 1.2.2?

c++ - 为什么我会从这个 unsigned int 中得到段错误?

java - 键盘锁管理器如何删除取消按钮

android - 添加短信权限后,应用程序未显示在 Nexus 7 的 Play-Store 中

android - LocationClient requestLocationUpdates 与 PendingIntent

C++ 专门针对枚举的函数

c++ - 为什么这里涉及移动构造函数

没有任何意义的 Java 编译器错误(预期为 <identifier>)