Android Studio GoogleAPIs ClassNotFoundException

时间:2015-02-21 14:25:08

标签: android google-maps maps

我有一个项目,我正在尝试运行,但我想针对Google API的21运行它,以便我可以使用MapActivity并基本实现this maps solution

我添加了代码并让它正常运行我必须将compileSdkVersion添加到“Google Inc.:Google API:21”。

每次启动时,应用程序都会在启动时崩溃,但会出现以下异常:

Suppressed: java.lang.ClassNotFoundException: com.syncworks.syncmap.Main
            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)
            ... 13 more
     Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available

我似乎无法解决它。我试过清理项目,重建。将compileSdkVersion更改为21可防止我使用链接解决方案中的类。我从SDK管理器安装了Google API,Google Play服务库正在运行,因为我可以在尝试实施链接解决方案之前启动应用程序。

我阅读了有关检查是否包含Android私有库的答案,但我不知道如何从Android Studio访问和检查该文件

下面是我的应用程序的build.gradle文件

apply plugin: 'com.android.application'

android {
    compileSdkVersion "Google Inc.:Google APIs:21"
    buildToolsVersion "20.0.0"

    defaultConfig {
        applicationId "com.syncworks.syncmap"
        minSdkVersion 21
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.3'
    compile 'com.google.android.gms:play-services:6.5.87'
}

这是我的清单:

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.syncworks.syncmap" >

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

    <uses-library android:name="com.google.android.maps"/>

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />
        <meta-data
            android:name="com.google.android.maps.v2.API_KEY"
            android:value="@string/google_maps_key" />

        <activity
            android:name=".Main"
            android:label="@string/title_activity_maps" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

请帮忙吗?

1 个答案:

答案 0 :(得分:0)

logcat显示问题出在您的MainActivity.java类而不是build.gradle或Manifest文件中。如果您可以发布您的MainActivity.java文件,将有助于进一步评估此问题的原因!!

Thanks1!