升级到安卓工作室4,现在报告主要活动'is not accessible from class android.app.Instrumentation'



每次升级时都会发生这种情况,通常是由于不同的原因:我刚刚升级到安卓Studio 4,我的目标是安卓5/Api21以上。这一次,我的活动在启动时崩溃,声称我的主要活动"无法从类android.app.Instrumentation访问">

我不确定"android.app.Instrumentation"是什么,也不确定我的代码、依赖项或安卓工作室中是否有要求。我的主类是公共的,所以它应该能够看到它。

我的类声明如下:

public class AnthracitePlayer extends AppCompatActivity

AppCompatActivity,我相信它是我用来删除标题栏的东西,声明如下:

public class AppCompatActivity extends FragmentActivity implements AppCompatCallback,
TaskStackBuilder.SupportParentable, ActionBarDrawerToggle.DelegateProvider {

我的创建方法是这样开始的:

Override
public void onCreate(Bundle savedInstanceState)
{
Log.d(TAG,"Entered onCreate");
super.onCreate(savedInstanceState);
Display display = getWindowManager().getDefaultDisplay();
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
String displayName = display.getName();

我不确定这些是否会扰乱仪器的工作。错误如下:

07-12 14:32:26.251 20528-20528/totga.anthracitelayerrapi21D/ResourcesManager:创建新的AssetManager并设置为/data/app/totga.anthrasitelayerrapa21/base.apk07-12 14:32:26.341 20528-20528/totga.anthraciteplayerapi21 D/AndroidRuntime:关闭VM07-12 14:32:26.341 20528-20528/totga.anthraciteplayerapi21 E/AndroidRuntime:致命异常:main工艺:totga.anthraciteplayerapi21,PID:20528java.lang.RuntimeException:无法实例化活动ComponentInfo{totga.anthriteplayerapi21/totga.a蒽iteplayerapi21.AnthracitePlayer}:java.lang.IllegalAccessException:无法从类android.app.Instrumentation访问totga.Anthsiteplayerapi21.AntracitePlayer((在android.app.ActivityThread.performLaunchActivity(ActivityThreads.java:2515(在android.app.ActivityThread.handleLaunchActivity(ActivityThreads.java:2723(在android.app.ActivityThread.access上$900(ActivityThreads.java:172(在android.app.ActivityThread$H.handleMessage(ActivityThreads.java:1422(在android.os.Handler.dispatchMessage(Handler.java:102(在android.os.Looper.loop(Looper.java:145(在android.app.ActivityThread.main(ActivityThreads.java:5832(位于java.lang.reflect.Method.ioke(本机方法(位于java.lang.reflect.Method.ioke(Method.java:372(网址:com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399(网址:com.android.internal.os.ZygoteInit.main(ZygoteNit.java:1194(由以下原因引起:java.lang.IllegalAccessException:totga.anthriteplayerapi21.无法从类android.app.Instrumentation访问AntracitePlayer((位于java.lang.Class.newInstance(Class.java:1647(在android.app.Instrumentation.newActivity(Instrumentation.java:1079(在android.app.ActivityThread.performLaunchActivity(ActivityThreads.java:2505(在android.app.ActivityThread.handleLaunchActivity(ActivityThreads.java:2723(在android.app.ActivityThread.access上$900(ActivityThreads.java:172(在android.app.ActivityThread$H.handleMessage(ActivityThreads.java:1422(在android.os.Handler.dispatchMessage(Handler.java:102(在android.os.Looper.loop(Looper.java:145(在android.app.ActivityThread.main(ActivityThreads.java:5832(位于java.lang.reflect.Method.ioke(本机方法(位于java.lang.reflect.Method.ioke(Method.java:372(网址:com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399(网址:com.android.internal.os.ZygoteInit.main(ZygoteNit.java:1194(

我设法通过将onCreate从"public"更改为"protected"来运行它(尽管我现在遇到了新问题(。我认为发生的事情是,要么安卓库中父类的权限发生了变化,要么管理访问级别的规则变得更加严格——public应该以任何一种方式工作。

最新更新