Description
Hi guys, i'm trying to use Log4J2 in an Android (19) application and it's not working. Here is the code i have and the stacktrace i obtain when running the application.
Am i missing something or is Log4J2 not working yet in an Android environment ?
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; public class MyActivity extends Activity { static final Logger logger = LogManager.getLogger(MyActivity.class.getName()); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my); logger.error("TEST ############################################"); }
07-08 10:40:23.401 1307-1307/com.intl.log4j2xtest E/dalvikvm﹕ Could not find class 'javax.naming.InitialContext', referenced from method org.apache.logging.log4j.core.lookup.JndiLookup.lookup 07-08 10:40:23.441 1307-1307/com.intl.log4j2xtest E/AndroidRuntime﹕ FATAL EXCEPTION: main Process: com.intl.log4j2xtest, PID: 1307 java.lang.VerifyError: org/apache/logging/log4j/core/lookup/JndiLookup at org.apache.logging.log4j.core.lookup.Interpolator.<init>(Interpolator.java:75) at org.apache.logging.log4j.core.config.AbstractConfiguration.<init>(AbstractConfiguration.java:99) at org.apache.logging.log4j.core.config.NullConfiguration.<init>(NullConfiguration.java:29) at org.apache.logging.log4j.core.LoggerContext.<clinit>(LoggerContext.java:63) at org.apache.logging.log4j.core.selector.ClassLoaderContextSelector.locateContext(ClassLoaderContextSelector.java:218) at org.apache.logging.log4j.core.selector.ClassLoaderContextSelector.getContext(ClassLoaderContextSelector.java:144) at org.apache.logging.log4j.core.selector.ClassLoaderContextSelector.getContext(ClassLoaderContextSelector.java:80) at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:72) at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:37) at org.apache.logging.log4j.LogManager.getLogger(LogManager.java:473) at com.intl.log4j2xtest.MyActivity.<clinit>(MyActivity.java:16) 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) 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)
build.gradle file :
apply plugin: 'com.android.application' android { compileSdkVersion 19 buildToolsVersion "19.1.0" defaultConfig { applicationId "com.intl.log4j2xtest" minSdkVersion 19 targetSdkVersion 19 versionCode 1 versionName "1.0" } buildTypes { release { runProguard false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } packagingOptions { exclude 'META-INF/LICENSE' exclude 'META-INF/NOTICE' } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.0-rc2' compile group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.0-rc2' }
Attachments
Attachments
Issue Links
- is cloned by
-
LOG4J2-713 Android: java.lang.VerifyError: org/apache/logging/log4j/core/util/Closer
- Resolved
- is superceded by
-
LOG4J2-716 Auto-disable JMX when detecting Android
- Resolved
- relates to
-
LOG4J2-719 Android throws NetworkOnMainThreadException during Log4j2 initialization
- Resolved