안드로이드 개발 질문/답변
(글 수 45,052)
에러 메세지 :
04-03 02:00:27.392: V/Performance(19967): >>"서비스 시작"@40534488 onCreate
04-03 02:00:27.392: D/AndroidRuntime(19967): Shutting down VM
04-03 02:00:27.392: W/dalvikvm(19967): threadid=1: thread exiting with uncaught exception (group=0x4001d648)
04-03 02:00:27.402: E/AndroidRuntime(19967): FATAL EXCEPTION: main
04-03 02:00:27.402: E/AndroidRuntime(19967): java.lang.RuntimeException: Unable to create service "서비스": java.lang.ClassCastException: java.lang.String
04-03 02:00:27.402: E/AndroidRuntime(19967): at android.app.ActivityThread.handleCreateService(ActivityThread.java:2323)
04-03 02:00:27.402: E/AndroidRuntime(19967): at android.app.ActivityThread.access$2500(ActivityThread.java:135)
04-03 02:00:27.402: E/AndroidRuntime(19967): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1118)
04-03 02:00:27.402: E/AndroidRuntime(19967): at android.os.Handler.dispatchMessage(Handler.java:99)
04-03 02:00:27.402: E/AndroidRuntime(19967): at android.os.Looper.loop(Looper.java:150)
04-03 02:00:27.402: E/AndroidRuntime(19967): at android.app.ActivityThread.main(ActivityThread.java:4389)
04-03 02:00:27.402: E/AndroidRuntime(19967): at java.lang.reflect.Method.invokeNative(Native Method)
04-03 02:00:27.402: E/AndroidRuntime(19967): at java.lang.reflect.Method.invoke(Method.java:507)
04-03 02:00:27.402: E/AndroidRuntime(19967): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:849)
04-03 02:00:27.402: E/AndroidRuntime(19967): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:607)
04-03 02:00:27.402: E/AndroidRuntime(19967): at dalvik.system.NativeStart.main(Native Method)
04-03 02:00:27.402: E/AndroidRuntime(19967): Caused by: java.lang.ClassCastException: java.lang.String
04-03 02:00:27.402: E/AndroidRuntime(19967): at android.app.ContextImpl$SharedPreferencesImpl.getInt(ContextImpl.java:3478)
04-03 02:00:27.402: E/AndroidRuntime(19967): at "서비스".onCreate(ClockOnScreenService.java:42)
04-03 02:00:27.402: E/AndroidRuntime(19967): at android.app.ActivityThread.handleCreateService(ActivityThread.java:2309)
04-03 02:00:27.402: E/AndroidRuntime(19967): ... 10 more
제가 제미로 만들고있는 어플 인데 대충 오류가나는곳으로 짐작되는 소스부분은 아래와 같습니다.
private WindowManager.LayoutParams params;
private TextView tv;
@Override
public void onCreate() {
super.onCreate();
SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this);
final int check = pref.getInt("pos",0); //여기서 int값을 불러옵니다.
tv = new textView(this); //텍스트뷰 생성
tv.setTextColor(pref.getInt("fontcolor", 0xff00ccff)); //하지만 이부분은 잘 작동합니다.
if(check % 2 == 1) //이부분이 문제입니다. 자꾸 이 문장을 사용하면 오류가 발생하네요. 이 if문을 빼면 params 내 윈도우매니저 생성은 잘됩니다.
{
params = new WindowManager.LayoutParams(............); //윈도우매니저 생성
}
}
왜 tv의 색지정에서는 int를 잘만 불러오는데 if문내 에서는 잘 못불러오나요? 일부러 final int check으로 주었음에도 불구하고 안되네요(첨에는 그냥 함수를 if문안에 바로 넣었습니다.)
string오류가 뜨는거 보니 단위가 잘못된거 같은데 int를 불러왔는데도 불구하고 단위가 잘못됫다는건 좀 이상한데요 ㅠㅠ
의심되는건 색상은 잘되는걸 보니 16진수 값으로 int를 불러오는거 같기도 합니다(글쓰면서 생각난 거)
어덯게 해야 해결될까요? 이것때문에 다른설정도 포기했었는데 ㅠㅠ
P.S. 근데 고3인데 이런거 하고있으니 시간이 빡시긴 빡시네요 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ




pos로 저장된 값이 int형인지 잘 보세요.
저장을 String형으로 하신 것 같은데요.