当前位置: 首页 > 知识库问答 >
问题:

无法使用Google Services Google Maps V2运行Android项目

柴岳
2023-03-14

我正在尝试运行一个简单的显示地图的android项目。

我已经遵循了Google Maps链接中的所有步骤,但eclipse只是阻止尝试启动该项目。

1-我将google-play-services_lib添加到工作区。2-我在工作区中复制了它。3-我用这些创建了一个android项目:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.mapasimple"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
    android:minSdkVersion="12"
    android:targetSdkVersion="21" />
<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"/>
<!-- The following two permissions are not required to use
 Google Maps Android API v2, but are recommended. -->
<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/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
 <meta-data
      android:name="com.google.android.maps.v2.API_KEY" android:value="xxxxxxxx-kfjDVu3590eOxjhrVSc"/>
    <meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
 </application>
</manifest>
import android.app.Activity;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;
public class MainActivity extends  Activity{
    @Override
    protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
           requestWindowFeature(Window.FEATURE_NO_TITLE); this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
            setContentView(R.layout.activity_main);
        }
}       
<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
      android:id="@+id/map"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:name="com.google.android.gms.maps.MapFragment"/>

当我尝试运行该项目时,eclipse块经过了一点时间的处理。

默认情况下会选中Android私有库Android依赖项。如果取消选中其中一个,eclipse也会阻塞。如果取消选中这两个选项,eclipse将运行该项目,但出现以下错误:

我尝试了这些不同的事情,但没有成功:

    null
import android.app.Activity;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Toast;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapFragment;
public class MainActivity extends  Activity{
GoogleMap googleMap;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
           requestWindowFeature(Window.FEATURE_NO_TITLE); this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
            setContentView(R.layout.activity_main);
     initilizeMap();
     }
    private void initilizeMap() {
        if (googleMap == null) {
            googleMap = ((MapFragment) ((Activity) getApplicationContext()).getFragmentManager()
                    .findFragmentById(R.id.map)).getMap();
 // check if map is created successfully or not
            if (googleMap == null) {
                Toast.makeText(
                        getApplicationContext().getApplicationContext(),
                        "googlemap null",
                        Toast.LENGTH_SHORT).show();
             }
        }
    }
}       

已更新@Predactor答案

现在看来android找不到MainActivity类了。我重新制作了项目,重新执行所有步骤,并在一个新的工作区中重新制作,但总是出现以下错误:

共有1个答案

闻鹤龄
2023-03-14

在主活动中添加以下内容

private GoogleMap mMap;

在onCreate方法中添加

setUpMapIfNeeded();

在onCreate方法下,添加这个

private void setUpMapIfNeeded() {
    // Do a null check to confirm that we have not already instantiated the
    // map.
    if (mMap == null) {
        // Try to obtain the map from the SupportMapFragment.
        mMap = ((SupportMapFragment) getSupportFragmentManager()
                .findFragmentById(R.id.map)).getExtendedMap();
        // Check if we were successful in obtaining the map.
        if (mMap != null) {
            setUpMap();
        }
    }
}

private void setUpMap() {

    mMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE);

    }

}
<fragment
        android:id="@+id/map"
        android:name="com.google.android.gms.maps.SupportMapFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
 类似资料:
  • 我在Android Studio中构建项目时遇到了一个问题,几周前它还能正常工作,但当我今天试图运行该项目时,它失败了。下面是我得到的错误消息: org.Gradle.tooling.gradleConnectionException:无法使用分级发行版“http://services.Gradle.org/distributions/gradle-1.7-bin.zip”执行生成。:无法使用分级

  • 我在maven项目上运行proguard时遇到问题。我有这个项目的测试和发布版本。发布版本号并混淆代码。当我在测试模式下运行我的android项目时,一切都很顺利,但当我切换到发布模式时,异常被抛出。我的Maven vesrion是Maven 3.2。1、AndroidmavenPlugin 3.6。0和JDK1.6 下面你可以看到我的项目的pom文件 http://maven.apache.or

  • 我对科特林来说是全新的。我已经安装了kotlin插件来eclipse。我在下面的一个教程中找到了一个简单的例子。问题是,当我运行项目时,我收到了以下声明的错误。 为了解决这个问题,我试图运行项目作为kotlin应用程序,但我找不到这个选项。 请让我知道如何修复此错误? 代码: 错误: 更新: 为了解决这个问题,我完全按照本教程中的内容,安装了最新版本的eclipse PHOTON,但问题仍然存在。

  • 我创建了一个新的应用程序。 从https://pub.dev/packages/audioplayers添加了audioplayers flutter包。 显示Android嵌入的错误。我按照说明https://flutter.dev/go/android-project-migration进行操作。 现在我得到这个错误:

  • 我的项目有些问题。在Android Studio 3.0中,它运行良好,但当我更新到3.0.1时,我在合并dex时遇到了问题。 我清理和重建项目。我使用带依赖项的multiDexEnabled true 什么是错的: 错误:任务': app: transformDexArchiveWitExternalLibsDexMergerForDebug'执行失败。 Java语言lang.RuntimeEx

  • 刚才我已经安装并开始在Android Studio上工作,并在配置了开始工作所需的一切后创建了新项目。在新创建的项目中,我没有更改任何内容,然后尝试运行该项目。但是它不起作用,我想会出现一些依赖错误。这就是它。 > 出错的地方:发现任务': StudioTest2:'的配置有问题。 为属性“dex文件”指定的文件“C:\Users\StudioTest2\build\libs\StudioTest