一加手机定位地图崩溃

17

我的应用在OnePlus One设备上崩溃了。以下是设备的详细信息

Oneplus One(A0001)

Cyanogen 13.1- ZNH2KAS1KN

Android 6.0.1

Api Elderberry (5)

而logcat显示错误信息

无法启动活动ComponentInfo {com.test/com.test.DetailsActivity}:android.view.InflateException:二进制XML文件第108行:二进制XML文件第108行:错误膨胀类片段——堆栈跟踪——java.lang.RuntimeException:无法启动活动ComponentInfo {com.test/com.test.DetailsActivity} :android.view.InflateException:二进制XML文件第108行:二进制XML文件第108行:错误膨胀类片段在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2450)中 at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2510)at android.app.ActivityThread.-wrap11(ActivityThread.java) at android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1363)at android.os.Handler.dispatchMessage(Handler.java:102)at android.os.Looper.loop(Looper.java:148)at android.app.ActivityThread.main(ActivityThread.java:5461)在java.lang.reflect.Method.invoke(Native Method)中 at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726)在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)导致by:android.view.InflateException:二进制XML文件第108行:二进制XML文件第108行:错误膨胀类片段在android.view.LayoutInflater.inflate(LayoutInflater.java:539)中 at android.view.LayoutInflater.inflate(LayoutInflater.java:423)at android.view.LayoutInflater.inflate(LayoutInflater.java:374)在android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppComapatDelegateImplV7.java:256)中at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:109)在com.test.DetailsActivity.onCreate(DetailsActivity.java:313)中 at android.app.Activity.performCreate(Activity.java:6251)at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108)at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2403)... 9 more Caused by:android.view.InflateException:二进制XML文件第108行:错误膨胀类片段在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:782)中 at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)at android.view.LayoutInflater.rInflate(LayoutInflater.java:835)at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)在android.view.LayoutInflater.rInflate(LayoutInflater.java:838)中 at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)at android.view.LayoutInflater.rInflate(LayoutInflater.java:838)at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)在android.view.LayoutInflater.rInflate(LayoutInflater.java:838)中 at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)at android.view.LayoutInflater.rInflate(LayoutInflater.java:838)at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)at android.view.LayoutInflater.inflate(LayoutInflater.java:515)... 17 more Caused by:android.content.res.Resources $ NotFoundException:来自drawable资源ID#0x7f030000的文件/data/system/theme/icons/com.test_7f030000_0.png在android.content.res.Resources.openRawResource(Resources.java中:1336)中打开 at android.content.res.Resources.openRawResource(Resources.java:1306) at maps.V.N.a(Unknown Source) at maps.D.e.a(Unknown Source) at maps.D.p.a(Unknown Source) at maps.ad.ae.a(Unknown Source) at maps.ad.t.a(Unknown Source) at maps.ad.M.a(Unknown Source) at wd.onTransact(:com.google.android.gms.DynamiteModulesB:107) at android.os.Binder.transact(Binder.java:387) at com.google.android.gms.maps.internal.IMapFragmentDelegate $ zza $ zza.onCreateView(未知Source)at com.google.android.gms.maps.SupportMapFragment $ zza.onCreateView(未知源)at com.google.android.gms.dynamic.zza $ 4.zzb(Unknown Source)at com.google.android.gms.dynamic.zza.zza(Unknown Source)at com.google.android.gms.dynamic.zza.onCreateView(未知源)在 com.google.android.gms.maps.SupportMapFragment.onCreateView(Unknown Source)中at com.test.fragments.CustomMapFragment.onCreateView(CustomMapFragment.java:39) at android.support.v4.app.Fragment.performCreateView(Fragment.java:1962) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1036) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1226) at android.support.v4.app.FragmentManagerImpl.addFragment(FragmentManager.java:1328) at

我已经将地图片段添加到布局文件中。

  <fragment
          android:id="@+id/fragment_map"
          android:name="com.test.fragments.CustomMapFragment"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:layout_alignParentTop="true"
          android:layout_centerHorizontal="true"
          android:tag="fragment_map" />


public class CustomMapFragment extends SupportMapFragment {

    private OnTouchListener mListener;

    @TargetApi(Build.VERSION_CODES.JELLY_BEAN)
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        View layout = super.onCreateView(inflater, container, savedInstanceState);
        TouchableWrapper frameLayout = new TouchableWrapper(getActivity());
        ((ViewGroup) layout).addView(frameLayout,
                new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
        return layout;
    }

    public void setListener(OnTouchListener listener) {
        mListener = listener;
    }

    public interface OnTouchListener {
        void onTouch();
    }

    public class TouchableWrapper extends FrameLayout {

        public TouchableWrapper(Context context) {
            super(context);
        }

        @Override
        public boolean dispatchTouchEvent(MotionEvent event) {
            switch (event.getAction()) {
                case MotionEvent.ACTION_DOWN:
                    mListener.onTouch();
                    break;
                case MotionEvent.ACTION_UP:
                    mListener.onTouch();
                    break;
            }
            return super.dispatchTouchEvent(event);
        }
    }
}

如果有人遇到同样的问题并找到了解决方法,请告诉我。


仅限于此设备。我已经检查过其他OnePlus One型号。1)One Plus One(A0001) Android版本:5.1.1,6.0.1 操作系统版本:cyanogen 12.1-20151117,cyanogen 13.0-20161015-Nightly-bacon 2)One Plus One(A3003) Android版本:6.0.1 操作系统版本:oxygenOs 3.2.6。该应用在这些设备上运行良好。 - Asha Soman
2
在CyanogenMod JIRA中存在类似的问题,看起来该问题与CyanogenMod Hexo主题有关。https://jira.cyanogenmod.org/browse/BACON-5169 - devha
1
我也遇到了同样的问题。我查看了堆栈跟踪中提到的资源(在您的情况下,您提供的堆栈跟踪不足...您需要在其中找到未能加载的资源ID)。它是应用程序启动器的mipmap图标的资源ID#0x7f030000。我将其删除后,一切都按预期工作。我认为Cyanogenmod主题使用与谷歌地图使用相同的地址或类似的东西可能会导致冲突。 - lionheart
1
我已经将所有 mipmaps Launcher 图标复制到相应的 drawable 文件夹中,但这并没有起作用。在设备上,默认的 Google 地图应用程序可以正常运行。 - Asha Soman
1
遇到了同样的问题。我真的不想采用drawable vs. mipmap的解决方案,因为...mipmap文件夹是有很好的原因存在的。 - saberrider
显示剩余8条评论
3个回答

6

这对我有用,将所有应用程序启动器图标从mipmap文件夹移动到相应的drawable文件夹中,并删除mipmap文件夹。 更改 AndroidManifest.xml 中的 android:icon="@mipmap/ic_launcher"android:icon="@drawable/ic_launcher"

注意: 这不是Google推荐的方法,但是是一个临时解决方法。


3

我在我的一加一手机上遇到了同样的问题,我所做的只是将设备主题更改为默认主题(系统主题)。在这里找到这个问题之前,我并不知道这就是问题所在。感谢您提出这个问题。


0

这个已知的bug基本上是因为Google更新了他们的Play服务而消失了。此外,它是针对Cyanogenmod总体而言,而不仅仅是OnePlus。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接