相关疑难解决方法(0)

升级到ADT 22后,库不会再添加到APK

我有一个相当大的Android App项目,它引用了几个库项目.一切都很好,直到我将eclipse ADT插件升级到最新版本(v22).我当然也升级了SDK.我在eclipse中没有看到任何编译错误,但是当我在手机上运行项目时,我得到一个NoClassDefFoundError.

java.lang.NoClassDefFoundError: org.acra.ACRA
....
Run Code Online (Sandbox Code Playgroud)

方舟库包含在引用库中的项目(在libs文件夹)中的一个,我可以看到它在Package Explorer中的"Android的私人图书馆",也正如我所说的,没有编译错误.该项目在没有升级ADT的其他人的计算机上运行良好.

我已经尝试了很多东西,包括但不限于:

  • 重新安装android SDK
  • 下载一个新的ADT包
  • 删除我的所有代码,从git再次获取它
  • 将相关库复制到应用程序项目
  • 注释掉使用这个库的代码 - 我只是为下一个库得到了同样的错误

一切都没有成功,所以我在这里真的很绝望.

如果有人能给我一个如何解决这个问题的提示,我会很高兴.

eclipse android adt

236
推荐指数
2
解决办法
7万
查看次数

java.lang.ClassNotFoundException:在路径上找不到类:dexpathlist

我目前正在开展一个项目,我必须使用纯粹的原生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]]
Run Code Online (Sandbox Code Playgroud)

在运行我的项目时.

这是我的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");
}
Run Code Online (Sandbox Code Playgroud)

#万一

在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 …
Run Code Online (Sandbox Code Playgroud)

c++ java android android-ndk

125
推荐指数
18
解决办法
18万
查看次数

Android Activity ClassNotFoundException - 尝试了一切

我刚刚将一个应用程序重构为框架库和应用程序,但现在当我尝试在模拟器中启动应用程序时,我得到以下错误堆栈跟踪:

06-02 18:22:35.529: E/AndroidRuntime(586): FATAL EXCEPTION: main
06-02 18:22:35.529: E/AndroidRuntime(586): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.matthewrathbone.eastersays/com.matthewrathbone.eastersays.EasterSimonSaysActivity}: java.lang.ClassNotFoundException: com.matthewrathbone.eastersays.EasterSimonSaysActivity in loader dalvik.system.PathClassLoader[/data/app/com.matthewrathbone.eastersays-1.apk]
06-02 18:22:35.529: E/AndroidRuntime(586):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2585)
06-02 18:22:35.529: E/AndroidRuntime(586):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
06-02 18:22:35.529: E/AndroidRuntime(586):  at android.app.ActivityThread.access$2300(ActivityThread.java:125)
06-02 18:22:35.529: E/AndroidRuntime(586):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
06-02 18:22:35.529: E/AndroidRuntime(586):  at android.os.Handler.dispatchMessage(Handler.java:99)
06-02 18:22:35.529: E/AndroidRuntime(586):  at android.os.Looper.loop(Looper.java:123)
06-02 18:22:35.529: E/AndroidRuntime(586):  at android.app.ActivityThread.main(ActivityThread.java:4627)
06-02 18:22:35.529: E/AndroidRuntime(586):  at java.lang.reflect.Method.invokeNative(Native Method)
06-02 18:22:35.529: E/AndroidRuntime(586):  at java.lang.reflect.Method.invoke(Method.java:521)
06-02 18:22:35.529: E/AndroidRuntime(586):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
06-02 18:22:35.529: E/AndroidRuntime(586):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
06-02 18:22:35.529: E/AndroidRuntime(586): …
Run Code Online (Sandbox Code Playgroud)

java android classnotfoundexception android-library android-fragments

80
推荐指数
2
解决办法
9万
查看次数

java.lang.RuntimeException:无法实例化应用程序:ClassNotFoundException(仅在X86架构设备上)

这似乎是Stack Overflow中提出的最高问题之一,但即使在尝试了10多个问题的20多个解决方案并引用Android Docs之后,我的问题仍未解决.

logcat的:

FATAL EXCEPTION: main
Process: com.some.app, PID: 22838
java.lang.RuntimeException: Unable to instantiate application com.some.app.utils.Application: java.lang.ClassNotFoundException: Didn't find class "com.some.app.utils.Application" on path: DexPathList[[zip file "/data/app/com.some.app-1/base.apk"],nativeLibraryDirectories=[/data/app/com.some.app-1/lib/x86_64, /vendor/lib64, /system/lib64]]
    at android.app.LoadedApk.makeApplication(LoadedApk.java:563)
    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4526)
    at android.app.ActivityThread.access$1500(ActivityThread.java:151)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1364)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:135)
    at android.app.ActivityThread.main(ActivityThread.java:5254)
    at java.lang.reflect.Method.invoke(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:372)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
    Caused by: java.lang.ClassNotFoundException: Didn't find class "com.some.app.utils.Application" on path: DexPathList[[zip file "/data/app/com.some.app-1/base.apk"],nativeLibraryDirectories=[/data/app/com.some.app-1/lib/x86_64, /vendor/lib64, /system/lib64]]
    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
    at android.app.Instrumentation.newApplication(Instrumentation.java:980)
    at android.app.LoadedApk.makeApplication(LoadedApk.java:558)
    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4526) 
    at android.app.ActivityThread.access$1500(ActivityThread.java:151) …
Run Code Online (Sandbox Code Playgroud)

java x86 android android-studio

24
推荐指数
3
解决办法
9419
查看次数

classnotfound崩溃没有出现在崩溃现象中,但是在Google Play控制台中

我们正在尝试调试某些用户发生的崩溃,但无法确切地知道它是什么.

在Google Play控制台中,我们看到:

java.lang.RuntimeException:  
  at android.app.ActivityThread.handleReceiver (ActivityThread.java:3331)
  at android.app.ActivityThread.-wrap20 (ActivityThread.java)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1734) 
  at android.os.Handler.dispatchMessage (Handler.java:102) 
  at android.os.Looper.loop (Looper.java:154)
  at android.app.ActivityThread.main (ActivityThread.java:6688)
  at java.lang.reflect.Method.invoke (Native Method)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1468)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1358)
Caused by: java.lang.ClassNotFoundException: 
  at dalvik.system.BaseDexClassLoader.findClass (BaseDexClassLoader.java:56)
  at java.lang.ClassLoader.loadClass (ClassLoader.java:380)
  at java.lang.ClassLoader.loadClass (ClassLoader.java:312)
  at android.app.ActivityThread.handleReceiver (ActivityThread.java:3326)
Run Code Online (Sandbox Code Playgroud)

我们在项目中设置了Crashlytics,这是应用程序开始运行时加载的第一件事.我怀疑清单中可能缺少其中一个类,但是我们看了它(甚至为了确保它而消除了APK)并且它们都在那里.

我们怀疑它可能是其中一个活动在初始化期间使用的类,但其中一些是第三方SDK,因此我们无法访问其源代码.

有没有办法看到找不到的类名?错误不会出现在崩溃问题上,我们无法在我们拥有的任何设备/模拟器上重现错误.

谢谢!

编辑:部分解决方案

问题最终成为我们正在使用的通知包,它需要AndroidManifest.xml中特定于供应商的条目(我们的测试设备中没有这些条目).在重新整合了我们几乎所有的第三方服务后,我们最终看到崩溃报告消失了.

我们无法实现我们的总体目标(从记录到Google Play开发者控制台的异常中获取异常文本,而不仅仅是异常堆栈跟踪),因此找不到"好的"方法(据我们所知)哪个班级丢失了.相当令人失望的TBH.

android google-play-console

10
推荐指数
1
解决办法
306
查看次数