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
Java GoogleAPI添加了,但MapActivity变得不可见_Java_Android_Eclipse_Google Maps_Eclipse Plugin - Fatal编程技术网

Java GoogleAPI添加了,但MapActivity变得不可见

Java GoogleAPI添加了,但MapActivity变得不可见,java,android,eclipse,google-maps,eclipse-plugin,Java,Android,Eclipse,Google Maps,Eclipse Plugin,我对googlemap应用程序有一个小问题,我想用它来处理我的Eclipse,我已经更新了所有Elipse ADT,下载了GoogleAPI,但是我仍然从IDE得到一个错误,我的HelloWorld应用程序要从中扩展的MapActivity无法解析为一个类型。我是否缺少一些重要的导入或设置,需要对Eclipse本身执行这些导入或设置才能使其正常工作 public class HelloGoogleMapActivity extends MapActivity { /** Called w

我对googlemap应用程序有一个小问题,我想用它来处理我的Eclipse,我已经更新了所有Elipse ADT,下载了GoogleAPI,但是我仍然从IDE得到一个错误,我的HelloWorld应用程序要从中扩展的MapActivity无法解析为一个类型。我是否缺少一些重要的导入或设置,需要对Eclipse本身执行这些导入或设置才能使其正常工作

public class HelloGoogleMapActivity extends MapActivity {
    /** Called when the activity is first created. */
    @override
    protected boolean isRoundDisplayed()
    {
        return false;
    }
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        MapView mapv=(MapView)findViewById(R.id.mapview);
        mapv.setBuildInZoomControls(true);
    }
}
另外,第一个“@override”关键字被报告为非法,我不知道为什么

[更新]


所有的答案都是正确的。最正确的是下面的评论。谢谢你的代码剪辑。酷

使用以下代码供您使用…当我尝试显示地图时,此代码工作正常…更改
代码中需要

public class GoogleMapsActivity extends MapActivity implements LocationListener{
/** Called when the activity is first created. */
MapView mapView; 
MapController mc;
GeoPoint p;
String add = "";
double lattitude ;
double longitude;
String selectedprofile;
AudioManager am;
Button search;
EditText placeSearch;


class MapOverlay extends com.google.android.maps.Overlay
{
    @Override
    public boolean draw(Canvas canvas, MapView mapView, 
    boolean shadow, long when) 
    {
        super.draw(canvas, mapView, shadow);                   

        //---translate the GeoPoint to screen pixels---
        Point screenPts = new Point();
        mapView.getProjection().toPixels(p, screenPts);

        //---add the marker---
        Bitmap bmp = BitmapFactory.decodeResource(
            getResources(), R.drawable.pushpin2);            
        canvas.drawBitmap(bmp, screenPts.x, screenPts.y-50, null);         
        return true;
    }

    @Override
    public boolean onTouchEvent(MotionEvent event, MapView mapView) 
    {   
        add="";
        //---when user lifts his finger---
        if (event.getAction() == 1) {                
            GeoPoint p = mapView.getProjection().fromPixels(
                (int) event.getX(),
                (int) event.getY());


            Geocoder geoCoder = new Geocoder(
                    getBaseContext(), Locale.getDefault());
                try {
                    List<Address> addresses = geoCoder.getFromLocation(
                        p.getLatitudeE6()  / 1E6, 
                        p.getLongitudeE6() / 1E6, 1);

                    lattitude=p.getLatitudeE6()  / 1E6;
                    longitude=p.getLongitudeE6() / 1E6;

                    if (addresses.size() > 0) 
                    {
                        for (int i=0; i<addresses.get(0).getMaxAddressLineIndex(); 
                             i++)
                           add += addresses.get(0).getAddressLine(i) + "\n";
                    }

                    Toast.makeText(getBaseContext(), add, Toast.LENGTH_SHORT).show();


                }
                catch (IOException e) {                
                    e.printStackTrace();
                }   
                return true;

        }                
        else {
        return false;
        }
    }        
}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Intent intent=getIntent();
    setResult(RESULT_OK, intent);



    mapView = (MapView) findViewById(R.id.mapView);
    LinearLayout zoomLayout = (LinearLayout)findViewById(R.id.zoom);  
    View zoomView = mapView.getZoomControls(); 

    zoomLayout.addView(zoomView, 
        new LinearLayout.LayoutParams(
            LayoutParams.WRAP_CONTENT, 
            LayoutParams.WRAP_CONTENT)); 
    mapView.displayZoomControls(true);

    mc = mapView.getController();
    String coordinates[] = {"1.352566007", "103.78921587"};
    double lat = Double.parseDouble(coordinates[0]);
    double lng = Double.parseDouble(coordinates[1]);

    p = new GeoPoint(
        (int) (lat * 1E6), 
        (int) (lng * 1E6));

    mc.setCenter(p);
    mc.setZoom(17); 

    //---Add a location marker---
    MapOverlay mapOverlay = new MapOverlay();
    List<Overlay> listOfOverlays = mapView.getOverlays();
    listOfOverlays.clear();
    listOfOverlays.add(mapOverlay);      

    //mapView.invalidate();
    LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
    lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000L, 500.0f, this);
}
公共类GoogleMapsActivity扩展MapActivity实现LocationListener{
/**在首次创建活动时调用*/
地图视图;
地图控制器;
地质点p;
字符串add=“”;
双格;
双经度;
字符串选择配置文件;
音频经理am;
按钮搜索;
编辑文本位置搜索;
类MapOverlay扩展了com.google.android.maps.Overlay
{
@凌驾
公共布尔绘制(画布、地图视图、地图视图、,
布尔阴影(长时)
{
super.draw(画布、地图视图、阴影);
//---将地质点转换为屏幕像素---
点屏幕PTS=新点();
getProjection().toPixels(p,screenPts);
//---添加标记---
位图bmp=BitmapFactory.decodeResource(
getResources(),R.drawable.pushpin2);
canvas.drawBitmap(bmp,screenPts.x,screenPts.y-50,null);
返回true;
}
@凌驾
公共布尔onTouchEvent(MotionEvent事件,MapView MapView)
{   
加上“”;
//---当用户抬起手指时---
如果(event.getAction()==1){
地理点p=mapView.getProjection().fromPixels(
(int)event.getX(),
(int)event.getY();
地理编码器地理编码器=新地理编码器(
getBaseContext(),Locale.getDefault();
试一试{
列表地址=geoCoder.getFromLocation(
p、 getLatitudeE6()/1E6,
p、 getLongitudeE6()/1E6,1);
lattitude=p.GetLattitudee6()/1E6;
经度=p.getLongitudeE6()/1E6;
如果(地址.size()>0)
{

对于(int i=0;ifor@Override exception jst change once javacompiler from your project properties…JDK Compliance 1.6到1.5,thn再次将其设置为1.6…我面临着同样的问题…这是一些JDK构建项目的bcz…或eclipse问题

和地图问题

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/mainlayout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <com.google.android.maps.MapView
        android:id="@+id/showmap"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:apiKey="@string/mapkey"
        android:clickable="true" />

</RelativeLayout>
ApplicationManifest.xml

    <uses-permission android:name="android.permission.INTERNET" />
        <application
                android:icon="@drawable/ic_launcher"
                android:label="Andro Integration"
                android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" >


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

<!--         </activity> -->

        </application>
    <?xml version="1.0" encoding="utf-8"?>
            <manifest xmlns:android="http://schemas.android.com/apk/res/android"
                  package="com.manit.HelloGoogleMaps2"
                  android:versionCode="1"
                  android:versionName="1.0">
                <uses-sdk android:minSdkVersion="7" />

                <application android:icon="@drawable/icon" android:label="@string/app_name">
                    <activity android:name=".HelloGoogleMaps2"
                              android:label="@string/app_name">
                        <intent-filter>
                            <action android:name="android.intent.action.MAIN" />
                            <category android:name="android.intent.category.LAUNCHER" />
                        </intent-filter>
                    </activity>
            <uses-library android:name="com.google.android.maps" />
                </application>
                <uses-permission android:name="android.permission.INTERNET" />
            </manifest>

java

package com.manit.hellogoglemaps2;
导入java.util.List;
导入android.graphics.drawable.drawable;
导入android.os.Bundle;
导入com.google.android.maps.GeoPoint;
导入com.google.android.maps.MapActivity;
导入com.google.android.maps.MapView;
导入com.google.android.maps.Overlay;
导入com.google.android.maps.OverlayItem;
公共类HelloLogleMaps2扩展了MapActivity{
/**首次创建活动时调用。*/
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
MapView MapView=(MapView)findViewById(R.id.MapView);
mapView.SetBuilTinZoomControl(真);
List mapOverlays=mapView.getOverlays();
Drawable Drawable=this.getResources().getDrawable(R.Drawable.icon);
HelloItemizedOverlay itemizedoverlay=新HelloItemizedOverlay(可绘制,此);
地质点=新的地质点(30443769,-91158458);
OverlayItem OverlayItem=新的OverlayItem(指向“嗨”,“我在印度!”);
地质点2=新的地质点(1738581278480667);
OverlayItem overlayitem2=新的OverlayItem(第2点,“嗨!”,“我在印度的艾哈迈达巴德!”);
itemizedoverlay.addOverlay(overlayitem);
itemizedoverlay.addOverlay(overlayitem2);
添加(itemizedoverlay);
}
@凌驾
受保护的布尔值isRouteDisplayed()
{
返回false;
}   }       
HelloItemizeOverlay.java

package com.manit.HelloGoogleMaps2;

import java.util.ArrayList;
import android.app.AlertDialog;
import android.content.Context;
import android.graphics.drawable.Drawable;
import com.google.android.maps.ItemizedOverlay;
import com.google.android.maps.OverlayItem;

public class HelloItemizedOverlay extends ItemizedOverlay<OverlayItem>{
private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>();
 private Context mContext;

public HelloItemizedOverlay(Drawable defaultMarker, Context context) {
    // TODO Auto-generated constructor stub
    super(boundCenterBottom(defaultMarker));
     mContext = context;
}

public void addOverlay(OverlayItem overlay)
 {
 mOverlays.add(overlay);
 populate();
 }
 @Override
 protected OverlayItem createItem(int i)
 {
 return mOverlays.get(i);
 }
 @Override
 public int size()
 {
 return mOverlays.size();
 }
 @Override
 protected boolean onTap(int index)
 {
 OverlayItem item = mOverlays.get(index);
 AlertDialog.Builder dialog = new AlertDialog.Builder(mContext);
 dialog.setTitle(item.getTitle());
 dialog.setMessage(item.getSnippet());
 dialog.show();
 return true;
 }

}
package com.manit.hellogoglemaps2;
导入java.util.ArrayList;
导入android.app.AlertDialog;
导入android.content.Context;
导入android.graphics.drawable.drawable;
导入com.google.android.maps.ItemizedOverlay;
导入com.google.android.maps.OverlayItem;
公共类HelloItemizeOverlay扩展了ItemizeOverlay{
private ArrayList mOverlays=new ArrayList();
私有上下文;
公共HelloItemizeOverlay(可绘制的defaultMarker,上下文){
//TODO自动生成的构造函数存根
super(boundCenterBottom(defaultMarker));
mContext=上下文;
}
公共void addOverlay(OverlayItem overlay)
{
添加(覆盖);
填充();
}
@凌驾
受保护的OverlayItem createItem(int i)
{
返回mOverlays.get(i);
}
@凌驾
公共整数大小()
{
返回mOverlays.size();
}
@凌驾
受保护的布尔onTap(整数索引)
{
OverlayItem item=mOverlays.get(索引);
AlertDialog.Builder dialog=新建AlertDialog.Builder(mContext);
setTitle(item.getTitle());
setMessage(item.getSnippet());
dialog.show();
返回true;
}
}
Androidmanifest.xml

    <uses-permission android:name="android.permission.INTERNET" />
        <application
                android:icon="@drawable/ic_launcher"
                android:label="Andro Integration"
                android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" >


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

<!--         </activity> -->

        </application>
    <?xml version="1.0" encoding="utf-8"?>
            <manifest xmlns:android="http://schemas.android.com/apk/res/android"
                  package="com.manit.HelloGoogleMaps2"
                  android:versionCode="1"
                  android:versionName="1.0">
                <uses-sdk android:minSdkVersion="7" />

                <application android:icon="@drawable/icon" android:label="@string/app_name">
                    <activity android:name=".HelloGoogleMaps2"
                              android:label="@string/app_name">
                        <intent-filter>
                            <action android:name="android.intent.action.MAIN" />
                            <category android:name="android.intent.category.LAUNCHER" />
                        </intent-filter>
                    </activity>
            <uses-library android:name="com.google.android.maps" />
                </application>
                <uses-permission android:name="android.permission.INTERNET" />
            </manifest>

main.xml

<?xml version="1.0" encoding="utf-8"?>
    <com.google.android.maps.MapView
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/mapview"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     android:clickable="true"
     android:apiKey="0Y2GRNdvsKsNO5cbkNKYcht3_0ASApwak-Q19Fg"
    />

string.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, HelloGoogleMaps!</string>
<string name="app_name">Hello,GoogleMaps</string>
<string name="mapskey">0Y2GRNdvsKsNO5cbkNKYcht3_0ASApwak-Q19Fg</string>
</resources>

你好,世界,你好!
你好,谷歌地图
0y2grndvsno5cbknky