나는 거친 무언가를 쳤다고 생각합니다 ... 당신의 생각을 알려주세요. I가 개발했습니다주석으로 인해 NoClassDefFoundError가 발생했습니다. 가장 이상한 자바 문제는 무엇입니까?
동안 지금은 몇 가지를 정의하는 데 사용할 주석를 사용 안드로이드을위한 인프라 프로젝트.
다음 주석을 살펴보고 컴파일해야합니다.하지만 장치에서 실행할 때 NoClassDefFoundException이 발생합니다.
@Target({FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface ViewIdentifier {
int viewId() default -1;
int[] viewIds() default {};
ViewUI_Action[] listeners() default {};
boolean forDev() default false;
}
이는 구현 입니다 : 내가 코드를 컴파일의 ViewIdentifier 주석을 제거하면
@SuppressWarnings("unused")
@ViewIdentifier(
listeners = ViewUI_Action.OnClickAsCollection,
viewIds = {R.id.AccelerometerEngineeringScreen, R.id.RotationVectorEngineeringScreen, R.id.NetworkEngineeringScreen,
R.id.MagneticEngineeringScreen, R.id.OrientationEngineeringScreen, R.id.GPS_EngineeringScreen, R.id.CallsEngineeringScreen,
R.id.UpgradeAppButton, R.id.DEV_Action_Button, R.id.FYI_Button})
private View[] modelViews;
하고, 응용 프로그램 시작을 잘 실행,하지만 난 주석의를 반환하는 경우 NoClassDefFoundError가 지속됩니다.
이것은 깨끗한 빌드 문제가 아니며 게시하기 전에 더했습니다. 누락 된 클래스 파일은 bin/classes에 있으며 주석을 제거하면 클린 빌드에 관계없이 작동합니다. 작업 공간을 새로 고치고 프로젝트를 닫은 다음 Eclipse를 다시 시작하고 다른 트릭을 시도했습니다.
가장 이상한 점은 주석의 매개 변수를 반대로 변환하면됩니다.
@SuppressWarnings("unused")
@ViewIdentifier(
viewIds = {R.id.AccelerometerEngineeringScreen, R.id.RotationVectorEngineeringScreen, R.id.NetworkEngineeringScreen,
R.id.MagneticEngineeringScreen, R.id.OrientationEngineeringScreen, R.id.GPS_EngineeringScreen, R.id.CallsEngineeringScreen,
R.id.UpgradeAppButton, R.id.DEV_Action_Button, R.id.FYI_Button},
listeners = ViewUI_Action.OnClickAsCollection)
private View[] modelViews;
나는 말 이클립스 오류 얻을 : 을 그리고 이클립스는이 분야를 포함하는 클래스를 찾을 수 없습니다.
그래서 어떻게 생각하십니까? 클래스를 컴파일하는 중 오류가 발생 했습니까?
아담.
:-) 도움이
희망? 주석 구문을 어떻게 용서하는지 모르겠다. –
음 ... 그것을 들여다 보았다. 나는 일정한 배열을 사용했다. 아마 그런 경우 일까? 나는 그것을 조사 할 것이다. – TacB0sS
나는 당신이 그것을 가지고 있다고 생각한다. – TacB0sS