【问题标题】:Android: Unable to instantiate activityAndroid:无法实例化活动
【发布时间】:2014-11-08 18:19:47
【问题描述】:

我在运行我的应用程序时遇到问题。它只是突然发生的。前一刻我可以运行我的应用程序,下一刻我不能......这给了我一个例外:

11-08 19:04:42.936  20390-20390/dk.chargesmart.findstroem E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{dk.chargesmart.findstroem/dk.chargesmart.findstroem.MainActivity}: java.lang.IllegalAccessException

在 android 清单文件中它说我的活动不公开

这里是活动的“头”

class MainActivity extends FragmentActivity {

GoogleMap mMap;
ClusterManager<MyPin> mClusterManager;
ArrayList<Location> mLocations;
boolean showDetail;
boolean menuHidden;
boolean isAnimating;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    setUpMapIfNeeded();
    downloadItems();

    menuHidden = false;

    setUpMenu();
}

这里有更多关于异常的信息

11-08 19:04:42.936  20390-20390/dk.chargesmart.findstroem E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{dk.chargesmart.findstroem/dk.chargesmart.findstroem.MainActivity}: java.lang.IllegalAccessException: access to class not allowed
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2219)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2349)
        at android.app.ActivityThread.access$700(ActivityThread.java:159)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1316)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:176)
        at android.app.ActivityThread.main(ActivityThread.java:5419)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:525)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1046)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862)
        at dalvik.system.NativeStart.main(Native Method)
 Caused by: java.lang.IllegalAccessException: access to class not allowed
        at java.lang.Class.newInstanceImpl(Native Method)
        at java.lang.Class.newInstance(Class.java:1130)
        at android.app.Instrumentation.newActivity(Instrumentation.java:1078)

【问题讨论】:

    标签: android class android-studio


    【解决方案1】:

    你的活动应该被定义为

    public class MainActivity extends FragmentActivity {
        ...
        ...
    }
    

    关键字是公开

    【讨论】:

    • Doh,我应该为这个人提供一张脸 - 宿醉编码:b 非常感谢。这么简单的事情浪费了这么多时间。
    • 从其他 jvm 语言(例如:groovy)切换到 java 时会发生这种情况,因为在大多数情况下,类是公共的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多