Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java NoClassDefFoundError:解析:Lcom/parse/ui/R$layout失败;关于棒棒糖_Java_Android_Android Studio_Parse Platform - Fatal编程技术网

Java NoClassDefFoundError:解析:Lcom/parse/ui/R$layout失败;关于棒棒糖

Java NoClassDefFoundError:解析:Lcom/parse/ui/R$layout失败;关于棒棒糖,java,android,android-studio,parse-platform,Java,Android,Android Studio,Parse Platform,我是一名新开发人员,试图使用该服务制作Android应用程序。我的应用程序使用了上可用的ParseUI,并且运行良好 但是,最近在运行应用程序时,我在应用程序启动时遇到以下错误: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/parse/ui/R$layout; at com.parse.ui.ParseLoginFragment.onCreateView(ParseLoginFragment.java:21

我是一名新开发人员,试图使用该服务制作Android应用程序。我的应用程序使用了上可用的ParseUI,并且运行良好

但是,最近在运行应用程序时,我在应用程序启动时遇到以下错误:

java.lang.NoClassDefFoundError: Failed resolution of: Lcom/parse/ui/R$layout;
        at com.parse.ui.ParseLoginFragment.onCreateView(ParseLoginFragment.java:212)
        at android.support.v4.app.Fragment.performCreateView(Fragment.java:1789)
        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:955)
        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1138)
        at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:740)
        at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1501)
        at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:551)
        at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1171)
        at android.app.Activity.performStart(Activity.java:5241)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2157)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
        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:5001)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
 Caused by: java.lang.ClassNotFoundException: Didn't find class "com.parse.ui.R$layout" on path: DexPathList[[zip file "/data/app/com.udrink-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.udrink-1, /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.parse.ui.ParseLoginFragment.onCreateView(ParseLoginFragment.java:212)
        at android.support.v4.app.Fragment.performCreateView(Fragment.java:1789)
        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:955)
        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1138)
        at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:740)
        at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1501)
        at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:551)
        at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1171)
        at android.app.Activity.performStart(Activity.java:5241)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2157)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
        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:5001)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
Suppressed: java.lang.ClassNotFoundException: com.parse.ui.R$layout
        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)
        ... 20 more
 Caused by: java.lang.NoClassDefFoundError: Class "Lcom/parse/ui/R$layout;" not found
        ... 24 more
我知道以前有一些关于这个问题的问题。但这有点不同,因为这个错误只发生在运行Android KitKat和之前(API=21)的设备上,它运行得非常好

有人能指出这里的问题是什么以及如何解决吗

这是我的项目的build.gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"
    defaultConfig {
        applicationId 'com.udrink'
        minSdkVersion 16
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
        renderscriptTargetApi 22
        renderscriptSupportModeEnabled true
        multiDexEnabled true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    productFlavors {
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    // Module dependency on ParseLoginUI library sources
    compile 'com.google.android.gms:play-services:7.5.0'
    compile 'com.android.support:appcompat-v7:22.2.1'
    compile 'com.android.support:recyclerview-v7:22.2.1'
    compile 'com.android.support:cardview-v7:22.2.1'
    compile 'com.android.support:design:22.2.1'
    compile 'com.tonicartos:superslim:0.4.13'
    compile 'com.makeramen:roundedimageview:2.1.0'
    compile 'com.daimajia.swipelayout:library:1.2.0'
    compile 'com.github.gabrielemariotti.cards:cardslib-core:2.1.0'
    compile 'com.github.gabrielemariotti.cards:cardslib-cards:2.1.0'
    compile 'com.github.gabrielemariotti.cards:cardslib-recyclerview:2.1.0'
    compile('com.mikepenz:actionitembadge:3.0.1@aar') {
        transitive = true
    }
    compile 'com.github.jd-alexander:library:1.0.5'
    compile 'com.github.castorflex.smoothprogressbar:library:1.1.0'
    compile 'com.github.castorflex.smoothprogressbar:library-circular:1.1.0'
    compile project(':ParseLoginUI')
    compile project(':crop')
}
我正在运行Android Studio 1.3

编辑 以下是一些附加信息:

导致此错误的特定代码如下:

at com.parse.ui.ParseLoginFragment.onCreateView(ParseLoginFragment.java:212)
在ParseUI中的
ParseLoginFragment.java
中指向这一行的代码:

View v = inflater.inflate(R.layout.com_parse_ui_parse_login_fragment, parent, false);
正如您所看到的,这只是简单的布局充气代码,没有任何特定于API的函数

此外,该消息指定错误为:

java.lang.NoClassDefFoundError: Failed resolution of: Lcom/parse/ui/R$layout;

据我所知,这意味着找不到
ParseUI
R
类。

在调用大于最小化级别的代码(API)之前,应该先检查API级别。e、 你的版本是16。当你在使用一个诞生于22世纪的API时。那你需要

if (android.os.Build.VERSION.SDK_INT >=22)
{
     //the specify code.
}

在我和我的朋友仔细检查代码后,我们终于知道问题出在哪里:

这是因为minhazur建议的先前错误修复。我将
multiDexEnabled true
添加到我的
gradle.build
中,而没有仔细查看这篇文章,以获得棒棒糖前的支持。因此,具有多索引类的应用程序丢失了对我的库类的引用,因此未找到类
R
的错误

我按照页面的说明解决此问题:

  • 首先是我的
    gradle.build

    dependencies {
        compile 'com.android.support:multidex:1.0.0'
    }
    
  • 然后,按照页面上的
    MultiDexApplication
    类文档的指示,扩展我的
    应用程序
    类(或在
    AndroidManifest.xml
    中声明应用程序类,或重写
    attachBaseContext()
    函数)


这已经解决了我的问题。

我很感谢您的回答,但错误代码不是API特有的,因为我编辑的问题状态不是API特有的,所以这不是我想要的。