【发布时间】:2015-02-21 14:25:07
【问题描述】:
我有一个正在尝试运行的项目,但我想针对 Google API 的 21 运行它,以便我可以使用 MapActivity 并基本上实现 this maps solution
我添加了代码并使其正常工作,我必须将 compileSdkVersion 添加到“Google Inc.:Google APIs: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>
有什么帮助吗?
【问题讨论】:
-
无法编译,因为 compileSdkVersion "Google Inc.:Google APIs:21" 将其更改为 "21.0.0" ?
-
它确实像我提到的那样编译,我能够在链接解决方案中使用类的唯一原因是因为这个值。问题是它在我的 Main Activity 上以 NoClassDef 开始时崩溃,这确实存在。
-
你能在上面添加你的清单吗?
-
您是否检查了您在订单和导出部分中添加的库和 jar?
-
我正在使用 Android Studio,我不知道在哪里可以访问这些,但我肯定已经阅读了这样说的答案,并说要检查 Java Build Path 以确保 Android Private Libraries 存在。不知道在哪里检查这些..
标签: android google-maps maps