2012-10-02 4 views
0

내 안드로이드 응용 프로그램 (IDE Eclipse)에서 slf4j를 로그백과 함께 사용하고 싶습니다. Eclipse에서 빌드 경로에 jar 파일 (slf4j-api-1.7.1 logback-android-1.0.7-1.jar)을 이미 추가했습니다. 나는 다음과 같은 간단한 주요 활동안드로이드의 런타임 오류 SLF4j 시도 - Logback

import org.slf4j.Logger 
import org.slf4j.LoggerFactory 
public class MainActivity extends Activity{ 
    private static final Logger logger = 
       LoggerFactory.getLogger(MainActivity.class); 
    private void onnCreate(Bundle svedInstanceState){ 
     super.onCreate(savedInstanceState) 
     logger.debug("MainActivity created"); 
    } 
} 

과 교수실에서 내 응용 프로그램을 실행하려고

10-02 16:03:46.911: I/dalvikvm(619): Could not find method org.slf4j.LoggerFactory.getLogger, referenced from method com.mbm.activity.MainActivity.<clinit> 
10-02 16:03:46.911: W/dalvikvm(619): VFY: unable to resolve static method 3250: Lorg/slf4j/LoggerFactory;.getLogger (Ljava/lang/Class;)Lorg/slf4j/Logger; 
10-02 16:03:46.941: I/dalvikvm(619): Could not find method org.slf4j.Logger.debug, referenced from method com.mbm.activity.MainActivity.onToggleClicked 
10-02 16:03:46.941: W/dalvikvm(619): VFY: unable to resolve interface method 3248: Lorg/slf4j/Logger;.debug (Ljava/lang/String;)V 
10-02 16:03:46.941: I/dalvikvm(619): Could not find method org.slf4j.Logger.info, referenced from method com.mbm.activity.MainActivity.onToggleClicked 
10-02 16:03:46.941: W/dalvikvm(619): VFY: unable to resolve interface method 3249: Lorg/slf4j/Logger;.info (Ljava/lang/String;)V 
10-02 16:03:46.951: W/dalvikvm(619): Exception Ljava/lang/NoClassDefFoundError; thrown while initializing Lcom/mbm/activity/MainActivity; 
10-02 16:03:46.951: W/dalvikvm(619): Class init failed in newInstance call (Lcom/mbm/activity/MainActivity;) 
10-02 16:03:46.951: W/dalvikvm(619): threadid=1: thread exiting with uncaught exception (group=0x40a13300) 
10-02 16:03:46.961: E/AndroidRuntime(619): FATAL EXCEPTION: main 
10-02 16:03:46.961: E/AndroidRuntime(619): java.lang.ExceptionInInitializerError 
10-02 16:03:46.961: E/AndroidRuntime(619): at java.lang.Class.newInstanceImpl(Native Method) 
10-02 16:03:46.961: E/AndroidRuntime(619): at java.lang.Class.newInstance(Class.java:1319) 
10-02 16:03:46.961: E/AndroidRuntime(619): at android.app.Instrumentation.newActivity(Instrumentation.java:1053) 
10-02 16:03:46.961: E/AndroidRuntime(619): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1974) 
10-02 16:03:46.961: E/AndroidRuntime(619): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) 
10-02 16:03:46.961: E/AndroidRuntime(619): at android.app.ActivityThread.access$600(ActivityThread.java:130) 
10-02 16:03:46.961: E/AndroidRuntime(619): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195) 
10-02 16:03:46.961: E/AndroidRuntime(619): at android.os.Handler.dispatchMessage(Handler.java:99) 
10-02 16:03:46.961: E/AndroidRuntime(619): at android.os.Looper.loop(Looper.java:137) 
10-02 16:03:46.961: E/AndroidRuntime(619): at android.app.ActivityThread.main(ActivityThread.java:4745) 
10-02 16:03:46.961: E/AndroidRuntime(619): at java.lang.reflect.Method.invokeNative(Native Method) 
10-02 16:03:46.961: E/AndroidRuntime(619): at java.lang.reflect.Method.invoke(Method.java:511) 
10-02 16:03:46.961: E/AndroidRuntime(619): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 
10-02 16:03:46.961: E/AndroidRuntime(619): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
10-02 16:03:46.961: E/AndroidRuntime(619): at dalvik.system.NativeStart.main(Native Method) 
10-02 16:03:46.961: E/AndroidRuntime(619): Caused by: java.lang.NoClassDefFoundError: org.slf4j.LoggerFactory 
10-02 16:03:46.961: E/AndroidRuntime(619): at com.mbm.activity.MainActivity.<clinit>(MainActivity.java:41) 
10-02 16:03:46.961: E/AndroidRuntime(619): ... 15 more 

이 제발 도와주세요 내가 로그 캣

에 의해 캡처 다음과 같은 오류가 발생합니다.

답변

0

다음 단계로 문제가 해결되었습니다. 1) 프로젝트의 새 폴더에 2 개의 jar 파일을 넣습니다. 2) 경로를 빌드하는 데 jar 파일을 추가하십시오. 3) Java 빌드 경로에서 "order and export"탭을 입력하고 두 개의 jar 파일을 선택한 다음 ok를 누릅니다. 4) Project -> Clean !! 이러한 단계를 거친 후 앱은 오류없이 정상적으로 실행됩니다.

+2

ADT 17에서 [알려진 문제] (http://android.foxykeep.com/dev/how-to-fix-the-classdefnotfounderror-with-adt-17)로 변경되어 외부 JAR이 짐을 실은. 대안은 JAR을'$ {android-project-root}/libs /'에 복사하는 것입니다 (필요하다면 dir을 생성하십시오). – user46874