Android ClassNotFoundException:没有findpath上的类

10-22 15:29:40.897: E/AndroidRuntime(2561): FATAL EXCEPTION: main 10-22 15:29:40.897: E/AndroidRuntime(2561): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.gvg.simid/com.gvg.simid.Login}: java.lang.ClassNotFoundException: Didn't find class "com.gvg.simid.Login" on path: DexPathList[[zip file "/data/app/com.gvg.simid-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.gvg.simid-1, /vendor/lib, /system/lib]] 10-22 15:29:40.897: E/AndroidRuntime(2561): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2137) 10-22 15:29:40.897: E/AndroidRuntime(2561): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261) 10-22 15:29:40.897: E/AndroidRuntime(2561): at android.app.ActivityThread.access$600(ActivityThread.java:141) 10-22 15:29:40.897: E/AndroidRuntime(2561): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256) 10-22 15:29:40.897: E/AndroidRuntime(2561): at android.os.Handler.dispatchMessage(Handler.java:99) 10-22 15:29:40.897: E/AndroidRuntime(2561): at android.os.Looper.loop(Looper.java:137) 10-22 15:29:40.897: E/AndroidRuntime(2561): at android.app.ActivityThread.main(ActivityThread.java:5103) 10-22 15:29:40.897: E/AndroidRuntime(2561): at java.lang.reflect.Method.invokeNative(Native Method) 10-22 15:29:40.897: E/AndroidRuntime(2561): at java.lang.reflect.Method.invoke(Method.java:525) 10-22 15:29:40.897: E/AndroidRuntime(2561): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) 10-22 15:29:40.897: E/AndroidRuntime(2561): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 10-22 15:29:40.897: E/AndroidRuntime(2561): at dalvik.system.NativeStart.main(Native Method) 10-22 15:29:40.897: E/AndroidRuntime(2561): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.gvg.simid.Login" on path: DexPathList[[zip file "/data/app/com.gvg.simid-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.gvg.simid-1, /vendor/lib, /system/lib]] 10-22 15:29:40.897: E/AndroidRuntime(2561): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:53) 10-22 15:29:40.897: E/AndroidRuntime(2561): at java.lang.ClassLoader.loadClass(ClassLoader.java:501) 10-22 15:29:40.897: E/AndroidRuntime(2561): at java.lang.ClassLoader.loadClass(ClassLoader.java:461) 10-22 15:29:40.897: E/AndroidRuntime(2561): at android.app.Instrumentation.newActivity(Instrumentation.java:1061) 10-22 15:29:40.897: E/AndroidRuntime(2561): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2128) 10-22 15:29:40.897: E/AndroidRuntime(2561): ... 11 more 

我不确定是什么原因造成的,因为它在清单中正确列出:

 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.gvg.simid" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="18" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.BLUETOOTH" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> <uses-permission android:name="android.permission.CAMERA"/> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.READ_LOGS" /> <uses-permission android:name="android.permission.READ_OWNER_DATA" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.RECORD_AUDIO"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_OWNER_DATA" /> <uses-permission android:name="android.permission.WRITE_SETTINGS" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-feature android:name="android.hardware.usb.host" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.gvg.simid.Login" android:label="@string/app_name" android:screenOrientation="landscape"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest> 

我还添加了“Android私有库”来构buildpath,并将其移动到“订单和导出”的顶部,但仍然给了我同样的错误。

编辑:我完全重build项目,并无法重现错误。 不知道是什么原因造成的。

我的项目有同样的问题。这是因为我的项目和我在项目中添加的库项目之间的Android支持库版本冲突。 把相同版本的android支持库放在你包含的项目和库项目中,并清理构build …一切都将工作…

这下面的方法为我工作。 右键单击您的project并selectproperties 。 “属性”面板将打开。 从左边的菜单转到Java Build Path – > Order and Export 。 从下面的列表中取消选中"Android Dependencies"旁边的checkbox。 最后clean your project并运行。

希望它的作品

如果你正在使用Eclipse,请尝试Project – > Clean

对于那些在Android Studio上遇到这个问题的人,我在合并之后遇到了同样的问题,并且由于某种原因,甚至在cleaninvalidate cash/restart操作之后,我仍然坚持invalidate cash/restart ,这让我疯狂。

原来,可以通过从命令行运行gradle build来修复。 只需在项目目录中运行以下命令:

 ./gradlew assemble clean ./gradlew assemble 

我希望这会节省一些时间浪费和挫折,我不得不经历。

如果我们更改APP的构buildpath,就会发生这种情况,这可以在任何情况下添加或删除或更改库或.jar文件。 最好的解决scheme是重新启动Eclipse。

我有同样的问题,这对我工作

1)mainfest中的完整path代替相对path。

2)删除“build立”文件夹和清理项目。

如果在Android Studio 2.0及更高版本中使用新的“即时运行”function时出现此错误,那么这是一种错误。
要解决这个问题,你必须在Device / Emulator上手动停止你的应用程序,如果它没有停止,那么从Android StudioselectBuild Rebuild Project
然后单击运行button或SHIFT + F10

对于任何一个谁有multidex使写这个

里面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' } 

像下面这样写一个类EnableMultiDex

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

并在AndroidManifest.xml中将这个className写入Application标签

  <application android:name="YourPakageName.EnableMultiDex" android:hardwareAccelerated="true" android:icon="@drawable/wowio_launch_logo" android:label="@string/app_name" android:largeHeap="true" tools:node="replace"> 

1)在项目根目录下创buildlibs文件夹
2)复制并粘贴到它的jar文件
3)configuration构buildpath(添加jar)
4)清洁和运行

欢呼声:-)

相信我或不…我尝试了几乎每个我在这里find的答案在stackoverflow。 没有什么会帮助,直到我刚刚重新启动机器。 我的Android Studio在Ubuntu 16.04 LTS上运行。

我遇到了同样的问题,我注意到示例代码被放在目录“java”下,而不是目录“src”。 将代码移到src后,问题就解决了。

还要确保应用程序目录被拆分成多个文件夹。 例如/main/com/site/appname/ not /main/com.site.appname/

希望它的作品〜

我最近有这个问题,我正在使用Android Studio 0.8.4

问题是我决定重命名一个名为main.xml的XML菜单布局文件。

右键单击它并select重构 – >重命名 。 重命名之前,请确保取消选中“在注释和string中search”并按重构

因为我的文件最初被命名为“main” ,所以它重命名了app.iml和build.gradle中的关键path,主要是build.gradle中的java.srcDirs,因为path被定义为'src/main/java'

我希望这可以帮助任何可能遇到此问题的人。

当我定义了一个扩展视图的类,但在布局文件中用错误的名称引用了这个自定义视图时,我遇到了这个错误。 我没有在<com.example.customview/>包含<com.customview/>在XML布局文件中。

我有这个问题,由几个原因引发,但我在你的stacktrace中看到这个“ **Unable to instantiate activity ComponentInfo{...}: java.lang.ClassNotFoundException: Didn't find class "..." on path: DexPathList[[** “,我发现我的.classpath在停止工作之前的差异。

  <?xml version="1.0" encoding="UTF-8"?> <classpath> <classpathentry kind="src" path="src"/> <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/> <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/> <classpathentry kind="src" path="gen"/> <classpathentry kind="output" path="bin/classes"/> </classpath> 

我已经添加了该行:

 <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/> 

这是最终版本:

  <?xml version="1.0" encoding="UTF-8"?> <classpath> <classpathentry kind="src" path="src"/> <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/> <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/> <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/> <classpathentry kind="src" path="gen"/> <classpathentry kind="output" path="bin/classes"/> </classpath> 

现在它工作! =)

我有同样的确切问题。 如@weiweiabuild议,将代码从java目录移动到src为我工作。 我也从项目 – >属性 – > Java构buildpath – >订单和导出中删除了Android依赖项,并确保只在Android屏幕中包含库项目。

我有这个问题已经有一段时间了,和其他人一样,上面的答案不适用于我的项目。

在我的项目中,我已经把一个项目链接到了我的项目中,并且每次执行其他项目的代码时都抛出ClassDefNotFoundError。

所以这是我的解决scheme。 我去了我的项目和Java构buildpath的项目属性。 将另一个项目的src-folder中的“Source”选项卡和“链接源”压缩到我自己的项目中,并命名为一个新的文件夹“core-src”。

希望这个解决scheme能帮助别人

我遇到过同样的问题。 我正在使用Xamarin.Android。

在我的情况下,问题是我更改了versionCode和versionName。

当我把它们设置成这样的时候,我没有任何问题:

 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="pac.ka.ge" android:versionCode="1" android:versionName="1.0" android:installLocation="auto"> 

当我将其更改为(versionCode 2和versionName 0.0.1)时出现问题:

 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package=" pac.ka.ge " android:versionCode="2" android:versionName="0.0.1" android:installLocation="auto"> 

我通过更改为versionCode 2和versionName 1.0.0.1来解决此问题,如下所示:

 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package=" pac.ka.ge " android:versionCode="2" android:versionName="1.0.0.1" android:installLocation="auto"> 

我不确定为什么这是一个问题,也许Android不喜欢较低的versionName与更高的versionCode?

我在http://developer.android.com/guide/topics/manifest/manifest-element.html#vname上find了以下内容;

android:versionCode内部版本号。 此数字仅用于确定一个版本是否比另一个版本更新,更高的数字表示更新的版本。 这不是向用户显示的版本号; 该数字由versionName属性设置。 该值必须设置为整数,如“100”。 只要每个后续版本号码较高,您可以定义它。 例如,它可能是内部版本号。 或者,您可以将“xy”格式的版本号转换为整数,方法是分别在低16位和高16位中编码“x”和“y”。 或者,每次发布新版本时,都可以简单地增加一个号码。

android:versionName向用户显示的版本号。 这个属性可以被设置为一个原始string或者作为一个string资源的引用。 该string没有其他目的而不是显示给用户。 versionCode属性保存内部使用的重要版本号。

以防万一有人面对同样的问题,我没有build议的答案在这里帮助。

对我来说,原因是,Android工作室重构是越野车。 我移动了一个类的外部的一个内部类,这是一个视图,因此也有一个XML,其中直接path设置。 这个path不会被工作室重构! 并没有错误将被抛出。

希望这可以帮助任何人。 干杯。

从版本18升级后,我有这个问题。升级后,我有以下几点:Project Build Target是5.01,targetSDKVersion = 21

但是:构build工具仍然是从Android 4.3.1(18)我注意到,那些从ActionBarActivity派生他们的活动的应用程序崩溃与上述错误,仍然没有运行。

所以简单的解决方法是使用最新的Android SDK Build Tools 21.1.2,而不是只使用那些Android SDK Build Tools 18,这似乎是默认的。

所以罪魁祸首似乎Appcompat库,我用ActionBar向后compability。

顺便说一句 :使用appcompat库我必须设置/修复: $SDKInstallDIR$\Android\android-sdk\extras\android\support\v7\appcompat\project.properties target=android-21 (推荐其他一些有用的post,默认值为19))

在我们的情况下,我们想编译stream浪汉版本,并有同样的错误。 我们通过clean project修复它,并在Build菜单中rebuild project

我刚刚重新启动设备,并运行应用程序。 它没有任何问题。 希望这可以帮助别人:)

我在Android Studio中发现了这个错误,当我尝试在使用API 23的设备中进行debugging时,所以我检查了Android Studio,并且发现我没有安装此API 23版本 。 安装后,我解决了这个问题。

我曾多次遇到这个问题,而且我经常没有在依赖关系上做出明显的错误。

检查这个“未find”类是否存在于最终的apk中总是一个好主意。 如果是这样,就像我的情况一样,问题通常是:

这不是给定的类没有find,但它不能被加载,因为它的超类缺失。

检查您扩展的类是否可用,然后尝试相应地修复您的构build脚本或相关性。

我也面临同样的问题,我们可以通过做一些这样的事情来解决这个问题

1-卸载应用程序。

2-重build项目。

3-清理项目。

4-使文件无效并重新启动项目 – >无效并重新启动。

我遇到了同样的问题。 我解决了它首先删除您的Android项目文件夹中的生成文件夹和您的应用程序文件夹中的生成文件夹。 然后清理你的项目并build立。

我在Windows上遇到了同样的问题。 我已经把项目的path改名为包含空格的东西。

确保项目的path不包含空格。

java.lang.RuntimeException:无法实例化应用程序com.android.tools.fd.runtime.BootstrapApplication:java.lang.ClassNotFoundException:未在path中find类“com.android.tools.fd.runtime.BootstrapApplication”:/ data / app.apk(在android 4.3,4.1中)

无法实例化应用程序com.android.tools.fd.runtime.BootstrapApplication:java.lang.ClassNotFoundException:com.android.tools.fd.runtime.BootstrapApplication(在下面的棒棒糖IAM面临像这样的错误)

要禁用即时运行,它将正常工作遵循以下步骤来禁用android studio中的即时运行1.转到文件设置 – >生成,执行,部署 – >即时运行—>取消选中“启用即时运行”

我遇到了同样的问题,并通过执行以下操作来解决问题:

从生成菜单中select

1-清洁项目。

2-构buildAPK。

我在IntelliJ IDEA中遇到了这个问题。 这是我解决它的方法:

项目属性>构面>单击从正在添加的外部库创build的Android构面>选中“库模块”框。