【发布时间】:2014-07-18 05:53:31
【问题描述】:
我正在尝试制作一个显示地图并放大您当前位置的 Android 应用程序(目前只是试图让缩放工作),过去 3 天我一直在收到此错误:
java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.location.internal.ParcelableGeofence" on path: DexPathList[[zip file "/system/framework/com.android.media.remotedisplay.jar", zip file "/system/framework/com.android.location.provider.jar", zip file "/data/app/com.google.android.gms-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.google.android.gms-1, /vendor/lib, /system/lib]]
代码:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_map);
map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map))
.getMap();
map.setOnMapLoadedCallback(new GoogleMap.OnMapLoadedCallback() {
@Override
public void onMapLoaded() {
map.setMyLocationEnabled(true);
LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
// map.animateCamera(CameraUpdateFactory.zoomBy(8));
}
});
}
在我的 MainActivity.java 和布局中:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MapsActivity">
<fragment
android:id="@+id/map"
class="com.google.android.gms.maps.MapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</RelativeLayout>
以及清单中的相关组件:
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.PREVENT_POWER_KEY" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-sdk
android:minSdkVersion="18"
android:targetSdkVersion="18" />
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@android:style/Theme.Holo.Light.NoActionBar.Fullscreen"
android:uiOptions="">
<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="XXX" />
感谢您的任何想法。到目前为止,大多数建议似乎都表明 API 密钥存在一些问题 - 结果,我从 Google API 控制台多次更改了 API 密钥,重新生成了我的 debug.keystore 并重新生成了密钥,但无济于事。
更新:这是我的 build.gradle: 应用插件:'android'
机器人{ compileSdkVersion 19 buildToolsVersion "19.1.0"
defaultConfig {
minSdkVersion 19
targetSdkVersion 19
}
buildTypes {
release {
debug {
}
release {
}
runProguard false
// proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
sourceSets {
androidTest {
java.srcDirs = ['androidTest/java']
androidTest.setRoot('androidTest')
}
}
}
dependencies {
compile 'com.android.support:support-v4:20.0.0'
compile 'com.android.support:appcompat-v7:19.+'
compile 'com.google.android.gms:play-services:5.0.77'
androidTestCompile 'junit:junit:3.+'
}
【问题讨论】:
-
您在项目中添加了 google_play_service_lib 吗?
-
我通过 build.gradle 中的依赖添加了它。
标签: android google-maps google-play-services google-maps-api-2