在Android Java应用程序中使用Kotlin AAR时出现java.lang.NoClassDefFoundError

马赫什·古普塔

我必须在Kotlin中建立一个库(aar),并且必须在使用Java制成的Android应用程序中使用它。Kotlin库有一个带有附带功能的类,可在Java应用程序中静态使用。当我在Java中的Android应用程序中使用该静态方法时,会收到“ ClassNotFoundException”。谁能帮助我如何从Android Java应用程序中使用辅助方法。请在运行应用程序时找到我的代码段和异常。而且仅在Android Java Project中使用Kotlin AAR时才出现此错误,而在Android Kotlin Project中却没有。Kotlin库或Android Java项目中是否缺少Im。Kotlin图书馆摘要:

class LogUtil {
    companion object {
        private const val LOG_TAG = "KOTLIN_LIBRARY"
        @JvmStatic
        fun log(message: String) {
            Log.i(LOG_TAG, message)
        }
    }
}

Android活动代码段:

public class MainActivity extends AppCompatActivity {

    private HaloSDK haloSDK;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        testKotlinSDK();
    }


    private void testKotlinSDK() {
        LogUtil.log("Hello");
    }

    public void showKotlinWebView(View view) {
        Intent intent = HaloWebActivity.Companion.createIntent(this, "www.abc.com");
        startActivity(intent);
    }
}

例外:

java.lang.NoClassDefFoundError: Failed resolution of: Lkotlin/jvm/internal/Intrinsics;
        at com.abcd.kotlinlibrary.utils.LogUtil$Companion.log(Unknown Source:2)
        at com.abcd.kotlinlibrary.utils.LogUtil.log(Unknown Source:2)
        at com.abcd.thirdpartyapp.MainActivity.testKotlinSDK(MainActivity.java:25)
        at com.abcd.thirdpartyapp.MainActivity.onCreate(MainActivity.java:20)
        at android.app.Activity.performCreate(Activity.java:7174)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1220)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2910)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3032)
        at android.app.ActivityThread.-wrap11(Unknown Source:0)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1696)
        at android.os.Handler.dispatchMessage(Handler.java:105)
        at android.os.Looper.loop(Looper.java:164)
        at android.app.ActivityThread.main(ActivityThread.java:6940)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
     Caused by: java.lang.ClassNotFoundException: Didn't find class "kotlin.jvm.internal.Intrinsics" on path: DexPathList[[zip file "/data/app/com.abcd.thirdpartyapp-k2I71L3n7Qa6TEETe1GejQ==/base.apk"],nativeLibraryDirectories=[/data/app/com.abcd.thirdpartyapp-k2I71L3n7Qa6TEETe1GejQ==/lib/arm64, /system/lib64, /system/vendor/lib64]]
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:93)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
        at com.abcd.kotlinlibrary.utils.LogUtil$Companion.log(Unknown Source:2) 
        at com.abcd.kotlinlibrary.utils.LogUtil.log(Unknown Source:2) 
        at com.abcd.thirdpartyapp.MainActivity.testKotlinSDK(MainActivity.java:25) 
        at com.abcd.thirdpartyapp.MainActivity.onCreate(MainActivity.java:20) 
        at android.app.Activity.performCreate(Activity.java:7174) 
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1220) 
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2910) 
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3032) 
        at android.app.ActivityThread.-wrap11(Unknown Source:0) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1696) 
        at android.os.Handler.dispatchMessage(Handler.java:105) 
        at android.os.Looper.loop(Looper.java:164) 
        at android.app.ActivityThread.main(ActivityThread.java:6940) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374) 

缺少的类是Kotlin标准库的一部分如果您没有在项目中使用Kotlin则必须手动依赖它

implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.2.50'

另外,您可以确保将依赖项从库导出为:

api 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.2.50'

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Android:java.lang.NoClassDefFoundError

致命异常:在Android应用中调用静态方法时出现java.lang.NoClassDefFoundError

在具有Android Studio 2.2RC的Android 5.1上运行应用程序时出现java.lang.NoClassDefFoundError

Java.lang.NoClassDefFoundError使用Android支持设计NavigationView时出现问题

android studio java.lang.NoClassDefFoundError Gson

Android中的Java.lang.NoClassDefFoundError

java.lang.NoClassDefFoundError:android + maven + eclipse

java.lang.NoClassDefFoundError Android Studio

Android Showcaseview库java.lang.NoClassDefFoundError

Android Studio上的java.lang.NoClassDefFoundError

生产Android应用程序显示原因:java.lang.NoClassDefFoundError错误

Android-使用AppCompatActivity时java.lang.NoClassDefFoundError

已经将jar文件导入android studio时出现java.lang.NoClassDefFoundError

java.lang.NoClassDefFoundError

“ java.lang.NoClassDefFoundError”

使用HibernateTemplate时出现java.lang.NoClassDefFoundError

错误:从NodeJs运行Java时出现java.lang.NoClassDefFoundError

Eclipse + Maven + Spring应用程序:java.lang.NoClassDefFoundError

在 Java Android 应用程序中使用 Kotlin 代码

Appium脚本为Android应用程序引发“线程“主”中的异常java.lang.NoClassDefFoundError:org / objectweb / asm / Type”

运行我的项目时出现java.lang.NoClassDefFoundError错误

Android:发布APK上的java.lang.NoClassDefFoundError

Android 2.2:Guava类的java.lang.NoClassDefFoundError

我项目中的类的Android java.lang.NoClassDefFoundError

带有KitKat的Android设备上的java.lang.NoClassDefFoundError

java.lang.NoClassDefFoundError:com.google.android.maps.GeoPoint

MultiDex 导致 Android 4.4 中的 java.lang.NoClassDefFoundError

Android 9 asynctask中的java.lang.NoClassDefFoundError

Android 9(Pie)中的java.lang.NoClassDefFoundError