我的应用程序无法在Huawei P8 Lite上启动,但在其他设备上也可以正常工作。
我搜索了很长时间的问题,但是找不到有效的解决方案。

我的应用程序一直运行没有问题。然后我解决了一些问题,并在华为P8 Lite上启动失败。我不明白

LogCat:

? W/System.err: java.lang.NullPointerException: Attempt to invoke virtual method 'int com.huawei.lcagent.client.LogCollectManager.getUserType()' on a null object reference
? W/System.err:     at com.android.server.util.ReportTools.getUserType(ReportTools.java:86)
? W/System.err:     at com.android.server.util.ReportTools.isBetaUser(ReportTools.java:73)
? W/System.err:     at com.android.server.util.ReportTools.report(ReportTools.java:58)
? W/System.err:     at com.android.server.util.HwUserBehaviourRecord.appExitRecord(HwUserBehaviourRecord.java:65)
? W/System.err:     at com.android.server.am.ActivityManagerService$UiHandler.handleMessage(ActivityManagerService.java:1572)
? W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:102)
? W/System.err:     at android.os.Looper.loop(Looper.java:150)
? W/System.err:     at android.os.HandlerThread.run(HandlerThread.java:61)
? W/System.err:     at com.android.server.ServiceThread.run(ServiceThread.java:46)
 E/ReportTools: This is not beta user build
? I/Process: Sending signal. PID: 10115 SIG: 9
? I/PgedBinderListener: kstate callback type:8 value1=10115 value2=KILLED

这是我的 list (没有任何 Activity ):
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="prestigetower.nextgendevelopers.prestigetower">

    <uses-permission android:name="com.android.vending.BILLING"/>
    <uses-ermission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

    <application
        android:allowBackup="false"
        android:icon="@mipmap/enemy_175"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:hardwareAccelerated="false"
        android:largeHeap="true"
        android:debuggable="false"
        android:name="android.support.multidex.MultiDexApplication">

        <meta-data android:name="com.google.android.gms.version"
                   android:value="@integer/google_play_services_version" />
       <supports-screens
            android:smallScreens="true"
            android:normalScreens="true"
            android:largeScreens="true"
            android:xlargeScreens="true" />

        <service
            android:enabled="true"
            android:name="BackgroundSoundService" />

        <activity
            android:name=".MainActivity"
            android:label="@string/app_name"
            android:theme="@style/Theme.Transparent"
            android:screenOrientation="portrait"
            >

            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

        <activity android:name="com.google.android.gms.ads.AdActivity"
            android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
            android:theme="@android:style/Theme.Translucent" />

        <!-- END -->
    </application>
</manifest>

这是我的构建 Gradle :
apply plugin: 'com.android.application'

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.0"
    defaultConfig {
        applicationId "prestigetower.nextgendevelopers.prestigetower"
        minSdkVersion 18
        targetSdkVersion 25
        versionName 'Version 0.9.3.3'
        versionCode 933
        multiDexEnabled true
    }

    buildTypes {

        debug {
            minifyEnabled false

            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }

    productFlavors {

    }

    dexOptions {
        javaMaxHeapSize "4g"
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:25.0.0'
    compile 'com.android.support:support-v4:25.0.0'
    compile 'com.android.support:support-v13:25.0.0'
    compile 'com.android.support:design:25.0.0'
    compile 'com.android.support:recyclerview-v7:25.0.0'
    compile 'com.android.support:support-annotations:25.0.0'
    compile 'com.android.support:percent:25.0.0'
    compile 'com.android.support:cardview-v7:25.0.0'
    compile 'com.anjlab.android.iab.v3:library:1.0.+'
    compile 'com.google.android.gms:play-services:10.2.4'
    compile 'com.google.android.gms:play-services-ads:10.2.4'

    testCompile 'junit:junit:4.12'
}

最佳答案

经过研究后,我发现在华为P8 Lite上升级到Android M时,华为并没有向您显示LOG中的所有内容(我在带有Android P的Mate 20 Pro上对其进行了测试,并且看到了所有内容)。

所以实际的问题总是隐藏在这些奇怪的华为日志中

要显示logcat中的所有内容,您必须在Dialer特殊代码中键入以下内容:

*#*#2846579#*#*

然后,您应该看到以下设置屏幕:

nullpointerexception - 华为P8 Lite上的应用程序崩溃;在其他设备上正常工作-LMLPHP

转到后台设置

nullpointerexception - 华为P8 Lite上的应用程序崩溃;在其他设备上正常工作-LMLPHP

单击“日志设置”,然后根据需要调整日志

10-07 17:19