Android 日志猫胡言乱语。。。微调器,选定的微调器

Android 日志猫胡言乱语。。。微调器,选定的微调器,android,spinner,onclicklistener,Android,Spinner,Onclicklistener,我的项目一直运行良好,直到我为我的微调器声明了一个OnItemSelectListener。。 现在我的项目没有运行。。日志cat显示以下错误 03-03 01:59:08.465: E/AndroidRuntime(1401): FATAL EXCEPTION: main Process: com.example.testqstn, PID: 1401 java.lang.RuntimeException: Unable to instantiate activi

我的项目一直运行良好,直到我为我的微调器声明了一个OnItemSelectListener。。 现在我的项目没有运行。。日志cat显示以下错误

03-03 01:59:08.465: E/AndroidRuntime(1401):
     FATAL EXCEPTION: main
     Process: com.example.testqstn, PID: 1401
     java.lang.RuntimeException: Unable to instantiate activity
       ComponentInfo{com.example.testqstn/com.example.testqstn.MainActivity}: 
       java.lang.IllegalStateException: System services not available to Activities
       before onCreate()
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2121)
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
     at android.app.ActivityThread.access$800(ActivityThread.java:135)
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
     at android.os.Handler.dispatchMessage(Handler.java:102)
     at android.os.Looper.loop(Looper.java:136)
     at android.app.ActivityThread.main(ActivityThread.java:5017)
     at java.lang.reflect.Method.invokeNative(Native Method)
     at java.lang.reflect.Method.invoke(Method.java:515)
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
     at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.IllegalStateException: System services not available to Activities before onCreate()
     at android.app.Activity.getSystemService(Activity.java:4532)
     at android.widget.ArrayAdapter.init(ArrayAdapter.java:310)
     at android.widget.ArrayAdapter.<init>(ArrayAdapter.java:153)
     at com.example.testqstn.MainActivity.<init>(MainActivity.java:39)
     at java.lang.Class.newInstanceImpl(Native Method)
     at java.lang.Class.newInstance(Class.java:1208)
     at android.app.Instrumentation.newActivity(Instrumentation.java:1061)
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2112)
03-03 01:59:08.465:E/AndroidRuntime(1401):
致命异常:主
进程:com.example.testqstn,PID:1401
java.lang.RuntimeException:无法实例化活动
ComponentInfo{com.example.testqstn/com.example.testqstn.MainActivity}:
java.lang.IllegalStateException:系统服务对活动不可用
在onCreate()之前
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2121)上
位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
在android.app.ActivityThread.access$800(ActivityThread.java:135)
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)上
位于android.os.Handler.dispatchMessage(Handler.java:102)
位于android.os.Looper.loop(Looper.java:136)
位于android.app.ActivityThread.main(ActivityThread.java:5017)
位于java.lang.reflect.Method.Invokenactive(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:515)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)上
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
在dalvik.system.NativeStart.main(本机方法)
原因:java.lang.IllegalStateException:onCreate()之前的活动无法使用系统服务
位于android.app.Activity.getSystemService(Activity.java:4532)
位于android.widget.ArrayAdapter.init(ArrayAdapter.java:310)
在android.widget.ArrayAdapter。(ArrayAdapter.java:153)
位于com.example.testqstn.MainActivity。(MainActivity.java:39)
位于java.lang.Class.newInstanceImpl(本机方法)
位于java.lang.Class.newInstance(Class.java:1208)
位于android.app.Instrumentation.newActivity(Instrumentation.java:1061)
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2112)上
现在需要注意的是

1) 根本没有实现主活动方法。。甚至连super.onCreate都没有

这就是我输入的代码。。但是由于它没有得到实施,我不知道它的相关情况

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    main(); 
}

public void main()
{
    TextView textyear,textsubject,textschema;
    Typeface typeface = Typeface.createFromAsset(getAssets(), "fonts/Roboto/Roboto-Light.ttf");
    textyear = (TextView)findViewById(R.id.textyear);
    textsubject = (TextView)findViewById(R.id.textsubject);
    textschema = (TextView)findViewById(R.id.textscheme);

    textyear.setTypeface(typeface);
    textsubject.setTypeface(typeface);
    textschema.setTypeface(typeface);

    year = (Spinner)findViewById(R.id.spinyear);
    subject = (Spinner)findViewById(R.id.spinsub);
    scheme = (Spinner)findViewById(R.id.spinscheme);
    schemetxt = scheme.toString();
    buttonSound = MediaPlayer.create(MainActivity.this,R.raw.sound );
    btn=(Button)findViewById(R.id.button);
    btn.setBackgroundResource(R.drawable.selector);
    // set dynamic value change

    scheme.setOnItemSelectedListener(new OnItemSelectedListener() {

        @Override
        public void onItemSelected(AdapterView<?> arg0, View arg1,
                int arg2, long arg3) {
            // TODO Auto-generated method stub
            listYear(schemetxt);

        }

        @Override
        public void onNothingSelected(AdapterView<?> arg0) {
            // TODO Auto-generated method stub

        }
    });
    btn.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v)
        {
            pdfSelection(v);
        }
       });


}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
main();
}
公共图书馆
{
TextView textyear、textsubject、textschema;
Typeface-Typeface=Typeface.createFromAsset(getAssets(),“font/Roboto/Roboto-Light.ttf”);
textyear=(TextView)findViewById(R.id.textyear);
textsubject=(TextView)findViewById(R.id.textsubject);
textschema=(TextView)findViewById(R.id.textscheme);
textyear.setTypeface(字体);
textsubject.setTypeface(字体);
textschema.setTypeface(字体);
年份=(微调器)findViewById(R.id.spinyear);
subject=(微调器)findViewById(R.id.spinsub);
scheme=(微调器)findViewById(R.id.spinscheme);
schemeText=scheme.toString();
buttonSound=MediaPlayer.create(MainActivity.this,R.raw.sound);
btn=(按钮)findViewById(R.id.Button);
btn.setBackgroundResource(R.drawable.selector);
//设置动态值更改
scheme.setOnItemSelectedListener(新的OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView arg0、视图arg1、,
整数arg2,长arg3){
//TODO自动生成的方法存根
列表年(SchemeText);
}
@凌驾
未选择公共无效(AdapterView arg0){
//TODO自动生成的方法存根
}
});
btn.setOnClickListener(新视图.OnClickListener(){
公共void onClick(视图v)
{
PDFSV选举(五);
}
});
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
//为菜单充气;这会将项目添加到操作栏(如果存在)。
getMenuInflater().充气(R.menu.main,menu);
返回true;
}
这是listview函数

    myAdapter1 = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, listYear);
    myAdapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    year.setAdapter(myAdapter1);
myAdapter1=新的ArrayAdapter(这是android.R.layout.simple\u微调器项目,listYear);
myAdapter1.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
年份。设置适配器(myAdapter1);
那么错误是什么呢??提前谢谢

这是代码b4我的oncreate函数

   Button btn;  
Spinner year , subject , scheme;
String yeartxt = null;
String subtxt = null;
String schemetxt = null;
List<String> listYear;
ArrayAdapter<String> myAdapter1 = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, listYear);
MediaPlayer buttonSound;
按钮btn;
纺纱机年份、主题、方案;
字符串yeartxt=null;
字符串subtext=null;
字符串schemetxt=null;
每年列出清单;
ArrayAdapter myAdapter1=新的ArrayAdapter(这是android.R.layout.simple\u微调器\u项,listYear);
MediaPlayer按钮声音;
关键部分在这里:

Caused by: java.lang.IllegalStateException: System services not available to Activities before onCreate()
沿着stacktrace往下走:

at android.widget.ArrayAdapter.<init>(ArrayAdapter.java:153)
at com.example.testqstn.MainActivity.<init>(MainActivity.java:39)
有公正的声明

ArrayAdapter<String> myAdapter1;
阵列适配器myAdapter1;
并移动初始化

ArrayAdapter<String> myAdapter1 = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, listYear);
myAdapter1 = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, listYear);
myAdapter1=新的ArrayAdapter(这是android.R.layout.simple\u微调器项目,listYear);
onCreate()
和第一次使用
myAdapter1
之间的某个位置

原因:java.lang.IllegalStateException:系统服务不可用 onCreate()之前的活动可用

创建活动后,上下文即可用

编辑:

阵列适配器myAdapter1;
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//确保在此之前填充listYear
myAdapter1=新的ArrayAdapter(这个,android.R.layout.simple\u微调器项目,listYear);

同时重命名
listYear(SchemeText)
列表年
将有助于可读性

您在创建相同的
乱码之前有一些代码
-您的意思是对运行时错误的准确、详细的描述,包括原因?对我来说是乱码…)@Alvin什么是
MainActivity.java
行39@laalto…谢谢你的及时回复,但是..我有在我的职责中用新的开始
ArrayAdapter<String> myAdapter1;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// make sure listYear is populated before this
myAdapter1 = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, listYear);