java.lang.NoClassDefFoundError: Ошибка разрешения: Lcom/samsung/android/sdk/look/SlookImpl;
Я пытаюсь реализовать функцию SLook Samsung SDK. Для тестирования используется устройство Samsung Galaxy prime 4G. Несмотря на сообщение об ошибке, журнал показывает строку ошибки внутри блока Try, при запуске приложения происходит сбой.
Я использую JAR
-: sdk-v1.0.0.jar
-: look_v1.3.1.jar
Java-код, инициализирующий Slook, который выдает ошибку на тестирующем устройстве.
Slook slook = new Slook();
LinearLayout l = (LinearLayout) findViewById(R.id.information);
try {
slook.initialize(this);
} catch (SsdkUnsupportedException e) {
//l.addView(createTextView(e.toString()));
Toast.makeText(ICD.this, e.toString(), Toast.LENGTH_LONG).show();
return;
}
Полная ошибка стека
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.a1technology.android, PID: 25097
java.lang.NoClassDefFoundError: Failed resolution of: Lcom/samsung/android/sdk/look/SlookImpl;
at com.samsung.android.sdk.look.Slook.isSupportedDevice(Slook.java:160)
at com.samsung.android.sdk.look.Slook.initialize(Slook.java:137)
at com.a1technology.android.ICD.onCreate(ICD.java:60)
at android.app.Activity.performCreate(Activity.java:6178)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2648)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2769)
at android.app.ActivityThread.access$900(ActivityThread.java:177)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1430)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5910)
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:1405)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1200)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.samsung.android.sdk.look.SlookImpl" on path: DexPathList[[zip file "/data/app/com.a1technology.android-2/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
at com.samsung.android.sdk.look.Slook.isSupportedDevice(Slook.java:160)
at com.samsung.android.sdk.look.Slook.initialize(Slook.java:137)
at com.a1technology.android.ICD.onCreate(ICD.java:60)
at android.app.Activity.performCreate(Activity.java:6178)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2648)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2769)
at android.app.ActivityThread.access$900(ActivityThread.java:177)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1430)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5910)
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:1405)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1200)
Suppressed: java.lang.ClassNotFoundException: com.samsung.android.sdk.look.SlookImpl
at java.lang.Class.classForName(Native Method)
at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
... 17 more
Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available
Сборка приложения Gradle:
apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion "23.0.3"
defaultConfig {
applicationId "com.a1technology.android"
minSdkVersion 4
targetSdkVersion 4
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
compile files('libs/look_v1.3.1.jar')
compile files('libs/sdk-v1.0.0.jar')
}
1 ответ
У меня была та же проблема, и я исправил ее, как показано ниже:
try {
Slook slook = new Slook();
slook.initialize(getApplicationContext());
edgeWidgetSupport = true;
} catch (SsdkUnsupportedException | NoClassDefFoundError e) {
edgeWidgetSupport = false;
}
перед каждым вызовом методов Slook я проверяю этот флаг (edgeWidgetSupport).