java.lang.RuntimeException:无法实例化活动

时间:2015-11-02 22:32:47

标签: java android

如何从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)

我可以看到代码中没有错误,运行我的程序后它停止在我的模拟器中,我得到了错误,我应该导入一些库吗?

2 个答案:

答案 0 :(得分:3)

根据堆栈跟踪,您在hesh.ballc.MainActivity上实现了一个构造函数。

不要这样做。很少(如果有的话)在Activity子类上使用构造函数的方案是适当的。

您在该构造函数中拥有的任何代码都应该进入活动的onCreate()方法,可能是在super.onCreate()调用之后。

答案 1 :(得分:0)

还有另一个案例没有涉及,我认为我会提供详细信息。如果您有库依赖项和导入模块,请确保其他库没有将模块列为可启动组件的清单文件。

在库中使用它可能很奇怪,但是如果它在那里(从实例,在项目的默认启动之后)发现它,那么你只需要删除有问题的模块的清单启动器组件并重新导入模块。

您将在帖子中看到类似的stacktrace异常,但它将引用一个不是主项目的类(一个试图启动的库模块项目)。它似乎合并了一些清单文件,如果设置不正确,您可能会遇到此行为。