我的应用程序使用android api v2时出现问题,因为它不会启动它只会继续说"不幸的是,app_name已经停止工作。",我已经关注了每一个在谷歌发布的指南中的一步,我也在StackOverflow中查找了类似的问题并尝试了解决方案但不幸的是似乎没有工作。
我似乎遇到的最大问题之一是
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.maps.MapFragment"
即使我已添加Google Play服务库并已将其添加到应用项目中。那问题出在哪里呢?
import android.support.v4.app.FragmentActivity;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.GoogleMap;
import android.os.Bundle;
import android.view.Menu;
public class MainActivity extends FragmentActivity {
SupportMapFragment mMap;
GoogleMap googleMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mMap = (SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map);
googleMap = mMap.getMap();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
答案 0 :(得分:1)
编辑--- 我建议你试试Genymotion而不是eclipse android模拟器。
如果您已经拥有API密钥
,则可以执行此步骤第1步:
配置AndroindManifest.xml:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.br.activitys"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="16"
android:targetSdkVersion="16" />
<permission
android:name="com.br.activitys.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-permission android:name="com.br.activitys.permission.MAPS_RECEIVE" />
<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-feature
android:glEsVersion="0x00020000"
android:required="true" />
<application
android:allowBackup="true"
android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@android:style/Theme.Holo.Light.DarkActionBar"
android:debuggable="true">
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="YOUR API KEY" />
<activity> ... </activity>
</application>
</manifest>
第2步: 创建模拟器4.2.2 API 17
之后,启动并等待完全加载。 第3步: 下载文件https://www.dropbox.com/s/m8p5jsvg9i4l5j3/com.android.vending-20130716.apk e https://www.dropbox.com/s/a90mjl9nhk4qv45/com.google.android.gms-20130716.apk 用ADB安装它 在Windows上除了CMD类型
提示将opne,你需要访问你的android instalation文件夹,在我的情况下C:\ Program Files(x86)\ Android \ android-sdk \ platform-tools
因此,您将键入ADB INSTALL和您下载的文件的路径。
和
这个过程需要一些时间(2或3分钟),别担心。
之后,您需要重新启动模拟器。
第4步: 下载https://www.dropbox.com/s/42bz5imaq4uty4j/google_play_services_9.7z解压缩文件夹google_play_services insde of folder extra / google non your SDK目录(在我的情况下为C:\ Program Files(x86)\ Android \ android-sdk \ extras \ google),如果文件夹alredy存在,删除并替换为这个新的。 现在,将google_play_services \ libproject中的相同文件夹google-play-services_lib复制到您的工作区,并像eclipse项目一样导入。 档案 - &gt;导入
选择Android - &gt;现有的Android代码进入工作区
选择您复制的文件夹
并完成。
第5步: 现在将库添加到项目中。 右键单击项目并转到属性。 在android中,向下滚动直到库并单击“添加”。
选择您导入的项目,然后单击“确定”
可以肯定的是,去项目 - &gt;清洁并选择清除所有项目
已经完成,现在只需运行你的应用程序。
答案 1 :(得分:0)
您是否在模拟器或设备上测试您的应用程序。因为Google MapV2需要在其中安装带有Google Play apk的Android设备。