Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.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
在Android Studio中执行应用程序时出现NoClassDefFoundError_Android_Gradle_Android Studio_Noclassdeffounderror_Aar - Fatal编程技术网

在Android Studio中执行应用程序时出现NoClassDefFoundError

在Android Studio中执行应用程序时出现NoClassDefFoundError,android,gradle,android-studio,noclassdeffounderror,aar,Android,Gradle,Android Studio,Noclassdeffounderror,Aar,在我的项目中,我使用了一个.aar Android库,我把它放在//libs文件夹中。当然,我想在我的项目中使用这个库,所以我更改了build.gradle(中的一个),使它看起来像这样: apply plugin: 'com.android.application' android { compileSdkVersion 19 buildToolsVersion "20.0.0" defaultConfig { applicationId "brgr

在我的项目中,我使用了一个.aar Android库,我把它放在//libs文件夹中。当然,我想在我的项目中使用这个库,所以我更改了build.gradle(中的一个),使它看起来像这样:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 19
    buildToolsVersion "20.0.0"

    defaultConfig {
        applicationId "brgr.myapp"
        minSdkVersion 15
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile 'com.android.support:appcompat-v7:19.0.0'
    compile(name:'MapboxAndroidSDK-0.3.0', ext:'aar') {
        transitive = true
    }
    compile ('com.cocoahero.android:geojson:1.0.0@aar') {
        transitive=true
    }
}

repositories {
    mavenCentral()
    flatDir {
        dirs 'libs'
    }
}
在我的主要活动中使用库时,Android Studio的自动完成功能可以从库中找到类。但是,在执行应用程序时,出现以下错误:

2402-2402/brgr.myapp E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: brgr.myapp, PID: 2402
java.lang.NoClassDefFoundError: com.google.common.base.Strings
        at com.mapbox.mapboxsdk.views.MapView.<init>(MapView.java:218)
        at com.mapbox.mapboxsdk.views.MapView.<init>(MapView.java:249)
        at brgr.myapp.MyActivity.onCreate(MyActivity.java:18)
        at android.app.Activity.performCreate(Activity.java:5248)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1110)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2173)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2269)
        at android.app.ActivityThread.access$800(ActivityThread.java:139)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1210)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:136)
        at android.app.ActivityThread.main(ActivityThread.java:5102)
        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:785)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
        at dalvik.system.NativeStart.main(Native Method)
2402-2402/brgr.myapp E/AndroidRuntime﹕ 致命异常:主
进程:brgr.myapp,PID:2402
java.lang.NoClassDefFoundError:com.google.common.base.Strings
位于com.mapbox.mapboxsdk.views.MapView(MapView.java:218)
位于com.mapbox.mapboxsdk.views.MapView。(MapView.java:249)
在brgr.myapp.MyActivity.onCreate(MyActivity.java:18)中
位于android.app.Activity.performCreate(Activity.java:5248)
位于android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1110)
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2173)上
位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2269)
在android.app.ActivityThread.access$800(ActivityThread.java:139)
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1210)
位于android.os.Handler.dispatchMessage(Handler.java:102)
位于android.os.Looper.loop(Looper.java:136)
位于android.app.ActivityThread.main(ActivityThread.java:5102)
位于java.lang.reflect.Method.Invokenactive(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:515)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)上
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
在dalvik.system.NativeStart.main(本机方法)

有人能帮我纠正这个错误吗?提前谢谢

如果你去掉依赖项中的显式打包(即删除
,ext:'aar'
@aar
位),它是否有效?执行此操作时,同步Android Studio后会告诉我以下信息:
错误:配置项目时出现问题:app'>无法解析配置“”的所有依赖项:应用:_debugCompile'>找不到:MapboxAndroidSDK-0.3.0:。Required by:MyApp:app:unspecified
通常情况下,Gradle不会从您明确指定打包的依赖项中提取可传递的依赖项;这是故意的。如果您的AAR文件是本地的,那么似乎关闭打包也不起作用。如果您可以通过网络存储库而不是本地文件来包含库,那么您可以不用打包,这样就可以工作了。无论如何,我认为你们的一个图书馆依赖于番石榴,而格拉德尔没有包括它。解决方案可能是为库的可传递依赖项添加显式依赖项。