如何从logcat
修复波纹管错误 java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{hesh.ballc/hesh.ballc.MainActivity}: java.lang.IllegalAccessException: hesh.ballc.MainActivity() is not accessible from class android.app.Instrumentation
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2236)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2390)
at android.app.ActivityThread.access$800(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5257)
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.IllegalAccessException: hesh.ballc.MainActivity() is not accessible from class android.app.Instrumentation
at java.lang.Class.newInstance(Class.java:1603)
at android.app.Instrumentation.newActivity(Instrumentation.java:1066)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2226)
我可以看到代码中没有错误,运行我的程序后它停止在我的模拟器中,我得到了错误,我应该导入一些库吗?
答案 0 :(得分:3)
根据堆栈跟踪,您在hesh.ballc.MainActivity
上实现了一个构造函数。
不要这样做。很少(如果有的话)在Activity
子类上使用构造函数的方案是适当的。
您在该构造函数中拥有的任何代码都应该进入活动的onCreate()
方法,可能是在super.onCreate()
调用之后。
答案 1 :(得分:0)
还有另一个案例没有涉及,我认为我会提供详细信息。如果您有库依赖项和导入模块,请确保其他库没有将模块列为可启动组件的清单文件。
在库中使用它可能很奇怪,但是如果它在那里(从实例,在项目的默认启动之后)发现它,那么你只需要删除有问题的模块的清单启动器组件并重新导入模块。
您将在帖子中看到类似的stacktrace异常,但它将引用一个不是主项目的类(一个试图启动的库模块项目)。它似乎合并了一些清单文件,如果设置不正确,您可能会遇到此行为。