我在使用MapFragment
的布局文件中出现此错误我试过
安装Google Play服务,但仍有错误
此后solution仍然无效
我的应用程序能够运行,但是当我打开Fragment并使用MapFragment应用程序停止工作时
完整错误
渲染问题
无法实例化以下类:
- com.google.android.gms.maps.MapFragment(Open Class,Show Exception,Clear Cache)
提示:在自定义视图中使用View.isInEditMode() 在IDE中显示时跳过代码或显示示例数据。
如果这是意外错误,您还可以尝试构建项目,然后手动刷新布局。
例外详细信息
java.lang.NoSuchMethodException: com.google.android.gms.maps.MapFragment。(android.content.Context,android.util.AttributeSet)
- at java.lang.Class.getConstructor0(Class.java:3082)
- at java.lang.Class.getConstructor(Class.java:1825)<< li>
- 在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727)
- 在android.view.LayoutInflater.rInflate_Original(LayoutInflater.java:858)
- 在android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:70)
- 在android.view.LayoutInflater.rInflate(LayoutInflater.java:834)
- 在android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
- 在android.view.LayoutInflater.inflate(LayoutInflater.java:518)
- 在android.view.LayoutInflater.inflate(LayoutInflater.java:397)
将堆栈复制到剪贴板
fragment_contact.xml
<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="layout.ContactFragment">
<com.google.android.gms.maps.MapFragment
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/mapFragment"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true" />
</RelativeLayout>
的AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.ng.anthony.mininavigationdrawer" >
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<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"/>
<permission
android:name="com.example.permission.MAPS_RECEIVE"
android:protectionLevel="signature"/>
<uses-permission android:name="com.example.permission.MAPS_RECEIVE"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme"
android:screenOrientation="portrait">
<activity
android:name="com.th.ac.sd.MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
build.gradle(app)
apply plugin: 'com.android.application'
android {
compileSdkVersion 25
buildToolsVersion "23.0.2"
0
defaultConfig {
applicationId "com.th.ac.sd"
minSdkVersion 21
targetSdkVersion 25
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:25.2.0'
compile 'com.android.support:design:25.2.0'
compile 'com.android.support:support-v4:25.2.0'
testCompile 'junit:junit:4.12'
compile 'com.google.android.gms:play-services-maps:10.2.0'
}
已安装的SDK工具
答案 0 :(得分:1)
tools:context="layout.ContactFragment">
<com.google.android.gms.maps.MapFragment
你在片段中有一个片段。
Android并不是那么喜欢,所以无论你把<fragment class="layout.ContactFragment">
放在哪里(假设你这样做),你可以用谷歌地图片段替换它,因为你在这个ContactFragment
中唯一的观点是无论如何,地图片段。
否则,您可以使用FrameLayout
并动态加载new SupportMapFragment
,就像任何其他片段一样。