机器人工作室:java.lang.NoClassDefFoundError的 [英] android studio: java.lang.NoClassDefFoundError

查看:776
本文介绍了机器人工作室:java.lang.NoClassDefFoundError的的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想用csvreader,而我得到java.lang.NoClassDefFoundError的误差

在项目中,我把opencsv-3.2.jar libs文件夹中
而在摇篮,

 编译文件(库/ opencsv-3.2.jar)
 

被添加在依赖

有关我的CSV文件,把它放在在src /主/租入资产价值/ data.csv的

在我的code:

  AssetManager assetManager = context.getAssets();
        尝试 {
            InputStream的csvStream = assetManager.open(data.csv的);
            InputStreamReader的csvStreamReader =新的InputStreamReader(csvStream);
            CSVReader csvReader =新CSVReader(csvStreamReader);
            的String [] nextLine;
            Log.d(测试,读书CSV);

           在下面的句子//错误
            而((nextLine = csvReader.readNext())!= NULL){
                // nextLine []是值从行的阵列
                Log.d(测试,nextLine.toString()+等等......);
                打破;
            }


        }赶上(FileNotFoundException异常E){
            Log.d(测试,失败读取CSV);
            e.printStackTrace();
        }赶上(IOException异常E){
            Log.d(测试,IO异常CSV);
            e.printStackTrace();
        }`
 

例外:

  02-01 15:59:57.587 2271年至2271年/ com.example.brian.myapp E / AndroidRuntime:致命异常:主要
        工艺:com.example.brian.myapp,PID:2271
        java.lang.NoClassDefFoundError的:失败分辨率:Lorg /阿帕奇/公/ lang3 / StringUtils的;
                在com.opencsv.CSVParser.isAllWhiteSpace(CSVParser.java:478)
                在com.opencsv.CSVParser.parseLine(CSVParser.java:338)
                在com.opencsv.CSVParser.parseLineMulti(CSVParser.java:270)
                在com.opencsv.CSVReader.readNext(CSVReader.java:226)
                在com.example.brian.myapplication.HandbookDatabase.readAndInsertData(HandbookDatabase.java:57)
                在com.example.brian.myapplication.HandbookDatabase< INIT>(HandbookDatabase.java:40)
                在com.example.brian.myapplication.MainActivity.onCreate(MainActivity.java:50)
                在android.app.Activity.performCreate(Activity.java:5933)
                在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
                在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251)
                在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
                在android.app.ActivityThread.access $ 800(ActivityThread.java:144)
                在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1278)
                在android.os.Handler.dispatchMessage(Handler.java:102)
                在android.os.Looper.loop(Looper.java:135)
                在android.app.ActivityThread.main(ActivityThread.java:5221)
                在java.lang.reflect.Method.invoke(本机方法)
                在java.lang.reflect.Method.invoke(Method.java:372)
                在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:899)
                在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
         抛出java.lang.ClassNotFoundException:产生的原因没有找到类org.apache.commons.lang3.StringUtils的路径:DexPathList [zip文件/data/app/com.example.brian.myapp-2/base apk文件],nativeLibraryDirectories = [/供应商/ lib中/系统/ lib目录]
                在dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
                在java.lang.ClassLoader.loadClass(ClassLoader.java:511)
                在java.lang.ClassLoader.loadClass(ClassLoader.java:469)
    在com.opencsv.CSVParser.isAllWhiteSpace(CSVParser.java:478)
    在com.opencsv.CSVParser.parseLine(CSVParser.java:338)
    在com.opencsv.CSVParser.parseLineMulti(CSVParser.java:270)
    在com.opencsv.CSVReader.readNext(CSVReader.java:226)
    在com.example.brian.myapplication.HandbookDatabase.readAndInsertData(HandbookDatabase.java:57)
    在com.example.brian.myapplication.HandbookDatabase< INIT>(HandbookDatabase.java:40)
    在com.example.brian.myapplication.MainActivity.onCreate(MainActivity.java:50)
    在android.app.Activity.performCreate(Activity.java:5933)
    在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
    在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251)
    在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
    在android.app.ActivityThread.access $ 800(ActivityThread.java:144)
    在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1278)
    在android.os.Handler.dispatchMessage(Handler.java:102)
    在android.os.Looper.loop(Looper.java:135)
    在android.app.ActivityThread.main(ActivityThread.java:5221)
    在java.lang.reflect.Method.invoke(本机方法)
    在java.lang.reflect.Method.invoke(Method.java:372)
    在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:899)
    在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
        燮pressed:抛出java.lang.ClassNotFoundException:org.apache.commons.lang3.StringUtils
                在java.lang.Class.classForName(本机方法)
                在java.lang.BootClassLoader.findClass(ClassLoader.java:781)
                在java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
                在java.lang.ClassLoader.loadClass(ClassLoader.java:504)
                ... 21更多
         java.lang.NoClassDefFoundError的:产生的原因未找到类使用引导类加载器;没有堆栈可用
 

解决方案

您需要添加公地lang3 的依赖。

 'org.apache.commons:公地lang3:3.0
 

包含丢失的类组织/阿帕奇/公/ lang3 / StringUtils的

I am trying to use the csvreader while I get the error of java.lang.NoClassDefFoundError

In the project, I put the opencsv-3.2.jar in the libs folder
and in the gradle,

compile files ('libs/opencsv-3.2.jar')  

are added in the dependencies

For my csv file, it is put in the src/main/assests/data.csv

in my code:

 AssetManager assetManager = context.getAssets();
        try {
            InputStream csvStream = assetManager.open("data.csv");
            InputStreamReader csvStreamReader = new InputStreamReader(csvStream);
            CSVReader csvReader = new CSVReader(csvStreamReader);
            String [] nextLine;
            Log.d("test","reading csv");

           // error in following sentence
            while ((nextLine = csvReader.readNext()) != null) {
                // nextLine[] is an array of values from the line
                Log.d("test",nextLine.toString() + "etc...");
                break;
            }


        } catch (FileNotFoundException e) {
            Log.d("test","fail read csv");
            e.printStackTrace();
        } catch (IOException e) {
            Log.d("test","io exception csv");
            e.printStackTrace();
        }`

Exception:

    02-01 15:59:57.587    2271-2271/com.example.brian.myapp E/AndroidRuntime﹕ FATAL EXCEPTION: main
        Process: com.example.brian.myapp, PID: 2271
        java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/commons/lang3/StringUtils;
                at com.opencsv.CSVParser.isAllWhiteSpace(CSVParser.java:478)
                at com.opencsv.CSVParser.parseLine(CSVParser.java:338)
                at com.opencsv.CSVParser.parseLineMulti(CSVParser.java:270)
                at com.opencsv.CSVReader.readNext(CSVReader.java:226)
                at com.example.brian.myapplication.HandbookDatabase.readAndInsertData(HandbookDatabase.java:57)
                at com.example.brian.myapplication.HandbookDatabase.<init>(HandbookDatabase.java:40)
                at com.example.brian.myapplication.MainActivity.onCreate(MainActivity.java:50)
                at android.app.Activity.performCreate(Activity.java:5933)
                at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
                at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251)
                at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
                at android.app.ActivityThread.access$800(ActivityThread.java:144)
                at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
                at android.os.Handler.dispatchMessage(Handler.java:102)
                at android.os.Looper.loop(Looper.java:135)
                at android.app.ActivityThread.main(ActivityThread.java:5221)
                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:899)
                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
         Caused by: java.lang.ClassNotFoundException: Didn't find class "org.apache.commons.lang3.StringUtils" on path: DexPathList[[zip file "/data/app/com.example.brian.myapp-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.opencsv.CSVParser.isAllWhiteSpace(CSVParser.java:478)
                at com.opencsv.CSVParser.parseLine(CSVParser.java:338)
                at com.opencsv.CSVParser.parseLineMulti(CSVParser.java:270)
                at com.opencsv.CSVReader.readNext(CSVReader.java:226)
                at com.example.brian.myapplication.HandbookDatabase.readAndInsertData(HandbookDatabase.java:57)
                at com.example.brian.myapplication.HandbookDatabase.<init>(HandbookDatabase.java:40)
                at com.example.brian.myapplication.MainActivity.onCreate(MainActivity.java:50)
                at android.app.Activity.performCreate(Activity.java:5933)
                at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
                at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251)
                at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
                at android.app.ActivityThread.access$800(ActivityThread.java:144)
                at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
                at android.os.Handler.dispatchMessage(Handler.java:102)
                at android.os.Looper.loop(Looper.java:135)
                at android.app.ActivityThread.main(ActivityThread.java:5221)
                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:899)
                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
        Suppressed: java.lang.ClassNotFoundException: org.apache.commons.lang3.StringUtils
                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)
                ... 21 more
         Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available

解决方案

You need to add commons-lang3 as dependency.

'org.apache.commons:commons-lang3:3.0'

which contains the missing class org/apache/commons/lang3/StringUtils

这篇关于机器人工作室:java.lang.NoClassDefFoundError的的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆