【发布时间】:2016-07-11 23:59:12
【问题描述】:
我刚刚在我的应用程序中实现了我的第 4 个选项卡,该应用程序实现了谷歌地图。在此实现之前,我的应用程序运行良好,现在当我更改选项卡时它崩溃了。我在这里看到过类似的问题,但没有人有答案 LOL(实际上有很多不同的原因和对这个问题的回应)
这里是 fragmenthouts_maps 类
package com.example.hp_user.shoutfinal28;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.SupportMapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;
public class FragmentShouts_Maps extends Fragment implements OnMapReadyCallback {
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Get the view from fragment shouts.xml
View root_view = inflater.inflate(R.layout.fragmentshouts_maps, container, false);
SupportMapFragment supportMapFragment = (SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.Maps1);
if (supportMapFragment!= null) {
supportMapFragment.getMapAsync(this);
}
return root_view;
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
}
@Override
public void onMapReady (GoogleMap map) {
map.addMarker(new MarkerOptions()
.position(new LatLng(0, 0))
.title("Marker"));
}
}
我的 Fragmentshouts_maps 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" >
<fragment
android:id="@+id/Maps1"
class="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:layout="@layout/fragmentshouts_maps"
android:layout_alignParentEnd="true">
</fragment>
</RelativeLayout>
android 清单 xml
<?xml version="1.0" encoding="utf-8"?>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="SHOUT"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:label="SHOUT"
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>
查看寻呼机适配器类
package com.example.hp_user.shoutfinal28;
import android.content.Context;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;
public class ViewPagerAdapter extends FragmentStatePagerAdapter {
final int PAGE_COUNT = 4;
// Tab Titles
private String tabtitles[] = new String[] {"Home","Shouts","Maps","Shouters"};
Context context;
public ViewPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public int getCount() {
return PAGE_COUNT;
}
public Fragment getItem(int position) {
switch (position) {
// Open Fragment home.java
case 0:
FragmentHome fragmenthome = new FragmentHome();
return fragmenthome;
// Open Fragment shouters.java
case 1:
FragmentShouts fragmentshouts = new FragmentShouts();
return fragmentshouts;
case 2:
FragmentShouts_Maps fragmentshouts_maps = new FragmentShouts_Maps();
return fragmentshouts_maps;
case 3:
FragmentShouters fragmentshouters = new FragmentShouters();
return fragmentshouters;
}
return null;
}
@Override
public CharSequence getPageTitle(int position) {
return tabtitles[position];
}
}
这是我的错误日志
_03-24 13:10:44.990 2497-2497/com.example.hp_user.shoutfinal28 I/art:未后期启用 -Xcheck:jni(已启用) 03-24 13:10:45.149 2497-2497/com.example.hp_user.shoutfinal28 W/系统:类加载器引用未知路径:/data/app/com.example.hp_user.shoutfinal28-2/lib/x86 03-24 13:10:45.877 2497-2504/com.example.hp_user.shoutfinal28 W/艺术:暂停所有线程耗时:32.755ms 03-24 13:10:46.344 2497-2504/com.example.hp_user.shoutfinal28 W/艺术:暂停所有线程耗时:30.264ms 03-24 13:10:46.841 2497-2504/com.example.hp_user.shoutfinal28 W/艺术:暂停所有线程耗时:18.578ms 03-24 13:10:46.879 2497-2497/com.example.hp_user.shoutfinal28 I/GMPM:应用程序测量正在启动,版本:8487 03-24 13:10:46.879 2497-2497/com.example.hp_user.shoutfinal28 I/GMPM:启用调试日志运行:adb shell setprop log.tag.GMPM VERBOSE 03-24 13:10:47.126 2497-2497/com.example.hp_user.shoutfinal28 E/GMPM:GoogleService 初始化失败,状态:10,缺少预期的资源:用于初始化 Google 服务的“R.string.google_app_id”。可能的原因是缺少 google-services.json 或 com.google.gms.google-services gradle 插件。 03-24 13:10:47.126 2497-2497/com.example.hp_user.shoutfinal28 E/GMPM:未设置调度程序。不记录错误/警告。 03-24 13:10:47.285 2497-2504/com.example.hp_user.shoutfinal28 W/艺术:暂停所有线程耗时:10.416ms 03-24 13:10:47.306 2497-2549/com.example.hp_user.shoutfinal28 E/GMPM:无法上传。应用衡量功能已停用 03-24 13:10:48.324 2497-2504/com.example.hp_user.shoutfinal28 W/艺术:暂停所有线程耗时:56.790ms 03-24 13:10:48.692 2497-2504/com.example.hp_user.shoutfinal28 W/艺术:暂停所有线程耗时:19.660ms 03-24 13:10:48.735 2497-2571/com.example.hp_user.shoutfinal28 D/OpenGLRenderer: 使用 EGL_SWAP_BEHAVIOR_PRESERVED: true 03-24 13:10:49.214 2497-2571/com.example.hp_user.shoutfinal28 I/OpenGLRenderer:初始化 EGL,版本 1.4 03-24 13:10:49.686 2497-2571/com.example.hp_user.shoutfinal28 W/EGL_emulation:eglSurfaceAttrib 未实现 03-24 13:10:49.686 2497-2571/com.example.hp_user.shoutfinal28 W/OpenGLRenderer:无法在表面 0xac0bfc40 上设置 EGL_SWAP_BEHAVIOR,错误 = EGL_SUCCESS 03-24 13:10:49.713 2497-2504/com.example.hp_user.shoutfinal28 W/艺术:暂停所有线程耗时:34.869ms 03-24 13:10:50.299 2497-2497/com.example.hp_user.shoutfinal28 I/Choreographer:跳过了 88 帧!应用程序可能在其主线程上做了太多工作。 03-24 13:10:51.354 2497-2497/com.example.hp_user.shoutfinal28 I/Choreographer:跳过了 62 帧!应用程序可能在其主线程上做了太多工作。 03-24 13:10:51.698 2497-2504/com.example.hp_user.shoutfinal28 W/艺术:暂停所有线程耗时:19.748ms 03-24 13:10:54.816 2497-2504/com.example.hp_user.shoutfinal28 W/艺术:暂停所有线程耗时:68.575ms 03-24 13:10:55.255 2497-2504/com.example.hp_user.shoutfinal28 W/艺术:暂停所有线程耗时:56.167ms 03-24 13:10:55.684 2497-2504/com.example.hp_user.shoutfinal28 W/艺术:暂停所有线程耗时:13.477ms 03-24 13:10:57.162 2497-2504/com.example.hp_user.shoutfinal28 W/艺术:暂停所有线程耗时:7.253ms 03-24 13:10:58.712 2497-2549/com.example.hp_user.shoutfinal28 I/GMPM:未找到跟踪代码管理器,因此不会使用 03-24 13:10:59.674 2497-2504/com.example.hp_user.shoutfinal28 W/艺术:暂停所有线程耗时:24.761ms 03-24 13:11:00.056 2497-2497/com.example.hp_user.shoutfinal28 I/zzad:动态制作 Creator 03-24 13:11:00.148 2497-2497/com.example.hp_user.shoutfinal28 W/系统:类加载器引用未知路径:/system/priv-app/PrebuiltGmsCore/lib/x86 03-24 13:11:00.528 2497-2497/com.example.hp_user.shoutfinal28 D/ChimeraCfgMgr:读取存储的模块配置 03-24 13:11:00.560 2497-2508/com.example.hp_user.shoutfinal28 I/art:后台粘性并发标记扫描 GC 释放 7893(582KB) AllocSpace 对象,5(100KB) LOS 对象,13% 可用,3MB/ 3MB,暂停 3.580ms 共 263.471ms 03-24 13:11:00.584 2497-2497/com.example.hp_user.shoutfinal28 D/ChimeraCfgMgr:从 APK /data/user/0/com.google.android.gms 加载模块 com.google.android.gms.maps /app_chimera/chimera-module-root/module-a3e4fba11e705727c59ff3116ef21fa4834b9f56/MapsModule.apk 03-24 13:11:00.595 2497-2497/com.example.hp_user.shoutfinal28 D/ChimeraModuleLdr: 加载模块 APK /data/user/0/com.google.android.gms/app_chimera/chimera-module-root/module -a3e4fba11e705727c59ff3116ef21fa4834b9f56/MapsModule.apk 03-24 13:11:00.781 2497-2504/com.example.hp_user.shoutfinal28 W/艺术:暂停所有线程耗时:138.569ms 03-24 13:11:00.781 2497-2497/com.example.hp_user.shoutfinal28 D/ChimeraFileApk:请求进程的主要 ABI 是 x86 03-24 13:11:00.783 2497-2497/com.example.hp_user.shoutfinal28 D/ChimeraFileApk:类加载成功。找到优化代码。 03-24 13:11:00.825 2497-2497/com.example.hp_user.shoutfinal28 W/系统:类加载器引用未知路径:/data/user/0/com.google.android.gms/app_chimera/chimera-module-root /module-a3e4fba11e705727c59ff3116ef21fa4834b9f56/native-libs/x86 03-24 13:11:01.134 2497-2504/com.example.hp_user.shoutfinal28 W/艺术:暂停所有线程耗时:22.116ms 03-24 13:11:01.743 2497-2504/com.example.hp_user.shoutfinal28 W/艺术:暂停所有线程耗时:81.006 毫秒 03-24 13:11:01.744 2497-2497/com.example.hp_user.shoutfinal28 I/Google Maps Android API:Google Play 服务客户端版本:8487000 03-24 13:11:02.058 2497-2497/com.example.hp_user.shoutfinal28 I/Google Maps Android API:Google Play 服务包版本:8489470 03-24 13:11:02.144 2497-2504/com.example.hp_user.shoutfinal28 W/艺术:暂停所有线程耗时:35.413ms 03-24 13:11:02.181 2497-2497/com.example.hp_user.shoutfinal28 D/AndroidRuntime: 关闭 VM 03-24 13:11:02.275 2497-2497/com.example.hp_user.shoutfinal28 E/AndroidRuntime: 致命异常: main 进程:com.example.hp_user.shoutfinal28,PID:2497 android.view.InflateException: Binary XML file line #7: Binary XML file line #7: Error inflating class fragment 在 android.view.LayoutInflater.inflate(LayoutInflater.java:539) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:423) 在 com.example.hp_user.shoutfinal28.FragmentShouts_Maps.onCreateView(FragmentShouts_Maps.java:23) 在 android.support.v4.app.Fragment.performCreateView(Fragment.java:1962) 在 android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1067) 在 android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1248) 在 android.support.v4.app.BackStackRecord.run(BackStackRecord.java:738) 在 android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1613) 在 android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:570) 在 android.support.v4.app.FragmentStatePagerAdapter.finishUpdate(FragmentStatePagerAdapter.java:163) 在 android.support.v4.view.ViewPager.populate(ViewPager.java:1106) 在 android.support.v4.view.ViewPager.populate(ViewPager.java:952) 在 android.support.v4.view.ViewPager$3.run(ViewPager.java:251) 在 android.view.Choreographer$CallbackRecord.run(Choreographer.java:858) 在 android.view.Choreographer.doCallbacks(Choreographer.java:670) 在 android.view.Choreographer.doFrame(Choreographer.java:603) 在 android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844) 在 android.os.Handler.handleCallback(Handler.java:739) 在 android.os.Handler.dispatchMessage(Handler.java:95) 在 android.os.Looper.loop(Looper.java:148) 在 android.app.ActivityThread.main(ActivityThread.java:5417) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 原因:android.view.InflateException: Binary XML file line #7: Error inflating class fragment 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:782) 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:835) 在 android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:515) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:423) 在 com.example.hp_user.shoutfinal28.FragmentShouts_Maps.onCreateView(FragmentShouts_Maps.java:23) 在 android.support.v4.app.Fragment.performCreateView(Fragment.java:1962) 在 android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1067) 在 android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1248) 在 android.support.v4.app.BackStackRecord.run(BackStackRecord.java:738) 在 android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1613) 在 android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:570) 在 android.support.v4.app.FragmentStatePagerAdapter.finishUpdate(FragmentStatePagerAdapter.java:163) 在 android.support.v4.view.ViewPager.populate(ViewPager.java:1106) 在 android.support.v4.view.ViewPager.populate(ViewPager.java:952) 在 android.support.v4.view.ViewPager$3.run(ViewPager.java:251) 在 android.view.Choreographer$CallbackRecord.run(Choreographer.java:858) 在 android.view.Choreographer.doCallbacks(Choreographer.java:670) 在 android.view.Choreographer.doFrame(Choreographer.java:603) 在 android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844) 在 android.os.Handler.handleCallback(Handler.java:739) 在 android.os.Handler.dispatchMessage(Handler.java:95) 在 android.os.Looper.loop(Looper.java:148) 在 android.app.ActivityThread.main(ActivityThread.java:5417) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 原因:java.lang.RuntimeException:未找到 API 密钥。检查它是否在 AndroidManifest.xml 的元素中 在 com.google.maps.api.android.lib6.c.ad.a(未知来源) 在 com.google.maps.api.android.lib6.a.e.a(未知来源) 在 com.google.android.gms.maps.internal.CreatorImpl.b(未知来源) 在 com.google.android.gms.maps.internal.CreatorImpl.b(未知来源) 在 com.google.android.gms.maps.internal.h.onTransact(SourceFile:62) 在 android.os.Binder.transact(Binder.java:387) 在 com.google.android.gms.maps.internal.ah.b(SourceFile:179) 在 com.google.android.gms.maps.internal.CreatorImpl.b(SourceFile:100) 在 com.google.android.gms.maps.internal.ag.onTransact(SourceFile:62) 在 android.os.Binder.transact(Binder.java:387) 在 com.google.android.gms.maps.internal.zzc$zza$zza.zzs(未知来源) 在 com.google.android.gms.maps.SupportMapFragment$zzb.zzzW(未知来源) 在 com.google.android.gms.maps.SupportMapFragment$zzb.zza(未知来源) 在 com.google.android.gms.dynamic.zza.zza(未知来源) 在 com.google.android.gms.dynamic.zza.onInflate(未知来源) 在 com.google.android.gms.maps.SupportMapFragment.onInflate(未知来源) 在 android.support.v4.app.Fragment.onInflate(Fragment.java:1129) 在 android.support.v4.app.FragmentManagerImpl.onCreateView(FragmentManager.java:2283) 在 android.support.v4.view.LayoutInflaterCompatHC$FactoryWrapperHC.onCreateView(LayoutInflaterCompatHC.java:44) 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:746) 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:835) 在 android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:515) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:423) 在 com.example.hp_user.shoutfinal28.FragmentShouts_Maps.onCreateView(FragmentShouts_Maps.java:23) 在 android.support.v4.app.Fragment.performCreateView(Fragment.java:1962) 在 android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1067) 在 android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1248) 在 android.support.v4.app.BackStackRecord.run(BackStackRecord.java:738) 在 android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1613) 在 android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:570) 在 android.support.v4.app.FragmentStatePagerAdapter.finishUpdate(FragmentStatePagerAdapter.java:163) 在 android.support.v4.view.ViewPager.populate(ViewPager.java:1106) 在 android.support.v4.view.ViewPager.populate(ViewPager.java:952) 在 android.support.v4.view.ViewPager$3.run(ViewPager.java:251) 在 android.view.Choreographer$CallbackRecord.run(Choreographer.java:858) 在 android.view.Choreographer.doCallbacks(Choreographer.java:670) 在 android.view.Choreographer.doFrame(Choreographer.java:603) 在 android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844) 在 android.os.Handler.handleCallback(Handler.java:739) 在 android.os.Handler.dispatchMessage(Handler.java:95) 在 android.os.Looper.loop(Looper.java:148) 在 android.app.ActivityThread.main(ActivityThread.java:5417) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 03-24 13:11:13.831 2497-2504/com.example.hp_user.shoutfinal28 W/艺术:暂停所有线程耗时:21.969ms 03-24 13:11:16.801 2497-2504/com.example.hp_user.shoutfinal28 W/艺术:暂停所有线程耗时:12.148ms 03-24 13:11:20.740 2497-2504/com.example.hp_user.shoutfinal28 W/艺术:暂停所有线程耗时:10.787ms 03-24 13:11:42.991 2497-2504/com.example.hp_user.shoutfinal28 W/艺术:暂停所有线程耗时:411.474ms_
【问题讨论】:
-
可以添加fragmentshouts_maps.xml文件的代码吗?
-
我的错误我把谷歌地图xml文件我的意思是fragmenthouts_maps xml文件我已经修改了它所以你现在可以看到它@MiguelBenitez
-
不知道如何正确插入我的原木猫,但将其设置为粗体和斜体
标签: java android xml google-maps android-fragments