我的程序不会执行? [英] My programs won't execute?
问题描述
MainActivity.java
MainActivity.java
package com.example.alex.something;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
new Something();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
Something.java
Something.java
import android.view.View;
import android.widget.*;
public class Something extends MainActivity {
private Button b;
public Something(){
setContentView(R.layout.activity_main);
b = (Button) findViewById(R.id.button);
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
b.setText("Something else");
}
});
}
}
Log Cat
Log Cat
--------- beginning of crash
04-04 13:17:42.026 1902-1902/com.example.alex.something E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.example.alex.something, PID: 1902
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.alex.something/com.example.alex.something.MainActivity}: java.lang.IllegalStateException: System services not available to Activities before onCreate()
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
at android.app.ActivityThread.access$800(ActivityThread.java:144)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
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:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
Caused by: java.lang.IllegalStateException: System services not available to Activities before onCreate()
at android.app.Activity.getSystemService(Activity.java:4993)
at android.view.LayoutInflater.from(LayoutInflater.java:219)
at android.support.v7.app.ActionBarActivityDelegateBase.ensureSubDecor(ActionBarActivityDelegateBase.java:309)
at android.support.v7.app.ActionBarActivityDelegateBase.setContentView(ActionBarActivityDelegateBase.java:237)
at android.support.v7.app.ActionBarActivity.setContentView(ActionBarActivity.java:102)
at com.example.alex.something.Something.<init>(Something.java:18)
at com.example.alex.something.MainActivity.onCreate(MainActivity.java:16)
at android.app.Activity.performCreate(Activity.java:5937)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
at android.app.ActivityThread.access$800(ActivityThread.java:144)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
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:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
我真的不确定它在android中是如何工作的,但不是onCreate方法就像Java中的
Main方法一样,如果是这样,为什么它不起作用?我有它的GUI和听众在另一个类中,我在Main类中所做的就是调用它们并且Activity将执行。我只想要一个活动,然后是一大堆类的东西,例如让一个类处理GUI而另一个处理监听器,看起来如果我能做到它就不会发生只用一个主类,然后在另一个类中完成所有操作。再次,这将在普通的Java中工作,但我不确定为什么它不在这里工作? 我的意思是你的GUI和Listener类在你的main方法中执行以汇聚到一个单独的程序无论如何,任何人都知道为什么这不起作用?
I'm not really sure how it works in android, but isn't the "onCreate" method like the
"Main" method in Java, if so why ins't it working? I'm having it the "GUI" and "Listeners" are in another class and all I have to do in my "Main" class is call them and the "Activity" will execute. I just want One "Activity" and then a whole bunch of classes doing stuff, for instance having one class handle the GUI and the other handle the listeners which seems like it's not going to happen if I can't do this with just one main class and then everything in another class. Again, this would of worked in plain Java, but I'm not really sure why it isn't working here? By that I mean have your GUI and Listener classes execute in your main method to converge into one single program Anyways, anyone has any idea why this won't work?
推荐答案
800(ActivityThread.java:144)
在android.app.ActivityThread
800(ActivityThread.java:144) at android.app.ActivityThread
H.handleMessage(ActivityThread.java:1278)
在android.os.Handler.dispatchMessage(Handler.java:102)
在android.os.Looper.loop(Looper.java:135)
在android.app.ActivityThread.main(ActivityThread。 java:5221)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com。 android.internal.os.ZygoteInit
H.handleMessage(ActivityThread.java:1278) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5221) 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:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694 )
引起:java.lang.IllegalStateException:System onCreate()之前的活动不可用的服务android.app.Activity.getSystemService上的活动
(Activity.java:4993)
at android.view.LayoutInflater.from(LayoutInflater.java:219)
在android.support.v7.app.ActionBarActivityDelegateBase.ensureSubDecor(ActionBarActivityDelegateBase.java:309)
在android.support.v7.app.ActionBarActivityDelegateBase.setContentView(ActionBarActivityDelegateBase.java:237)
在android。 support.v7.app.ActionBarActivity.setContentView(ActionBarActivity.java:102)
at com.example.alex.something.Something。< init>(Something.java:18)
at com.example .alex.something.MainActivity.onCreate(MainActivity.java:16)
在android.app.Activity.performCreate(Activity.java:5937)
在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java) :1105)
在android.app.ActivityThread.performLaunchActivity(ActivityT hread.java:2251)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
at android.app.ActivityThread.access
MethodAndArgsCaller.run(ZygoteInit.java:899) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) Caused by: java.lang.IllegalStateException: System services not available to Activities before onCreate() at android.app.Activity.getSystemService(Activity.java:4993) at android.view.LayoutInflater.from(LayoutInflater.java:219) at android.support.v7.app.ActionBarActivityDelegateBase.ensureSubDecor(ActionBarActivityDelegateBase.java:309) at android.support.v7.app.ActionBarActivityDelegateBase.setContentView(ActionBarActivityDelegateBase.java:237) at android.support.v7.app.ActionBarActivity.setContentView(ActionBarActivity.java:102) at com.example.alex.something.Something.<init>(Something.java:18) at com.example.alex.something.MainActivity.onCreate(MainActivity.java:16) at android.app.Activity.performCreate(Activity.java:5937) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360) at android.app.ActivityThread.access
这篇关于我的程序不会执行?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!