0

我正在尝试反转 apk 并清理代码,但我遇到了这个错误,应用程序启动到启动屏幕,然后它因这个错误而崩溃,所有可绘制对象都是小尺寸

    android.view.InflateException: Binary XML file line #2: Binary XML file line #2: Error inflating class <unknown>
Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class <unknown>
Caused by: java.lang.reflect.InvocationTargetException
    at java.lang.reflect.Constructor.newInstance0(Native Method)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
    at android.view.LayoutInflater.createView(LayoutInflater.java:647)
    at com.android.internal.policy.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:58)
    at android.view.LayoutInflater.onCreateView(LayoutInflater.java:720)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:788)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
    at com.helperpkg.C2146q0.onCreateView(C2146q0.java:92)
    at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2600)
    at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:881)
    at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManagerImpl.java:1238)
    at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:1303)
    at androidx.fragment.app.BackStackRecord.executeOps(BackStackRecord.java:439)
    at androidx.fragment.app.FragmentManagerImpl.executeOps(FragmentManagerImpl.java:2079)
    at androidx.fragment.app.FragmentManagerImpl.executeOpsTogether(FragmentManagerImpl.java:1869)
    at androidx.fragment.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManagerImpl.java:1824)
    at androidx.fragment.app.FragmentManagerImpl.execPendingActions(FragmentManagerImpl.java:1727)
    at androidx.fragment.app.FragmentManagerImpl$2.run(FragmentManagerImpl.java:150)
    at android.os.Handler.handleCallback(Handler.java:873)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:193)
    at android.app.ActivityThread.main(ActivityThread.java:6669)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
 Caused by: java.lang.UnsupportedOperationException: Failed to resolve attribute at index 13: TypedValue{t=0x2/d=0x7f0302ff a=-1}
    at android.content.res.TypedArray.getDrawableForDensity(TypedArray.java:946)
    at android.content.res.TypedArray.getDrawable(TypedArray.java:930)
    at android.view.View.<init>(View.java:5010)
    at android.view.ViewGroup.<init>(ViewGroup.java:659)
    at android.widget.LinearLayout.<init>(LinearLayout.java:244)
    at android.widget.LinearLayout.<init>(LinearLayout.java:240)
    at android.widget.LinearLayout.<init>(LinearLayout.java:236)
    at java.lang.reflect.Constructor.newInstance0(Native Method) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:343) 
    at android.view.LayoutInflater.createView(LayoutInflater.java:647) 
    at com.android.internal.policy.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:58) 
    at android.view.LayoutInflater.onCreateView(LayoutInflater.java:720) 
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:788) 
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:492) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:423) 
    at android.view.LayoutInflater.inflate(LayoutInflater.java:374) 
    at com.helperpkg.C2146q0.onCreateView(C2146q0.java:92) 
    at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2600) 
    at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:881) 
    at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManagerImpl.java:1238) 
    at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:1303) 
    at androidx.fragment.app.BackStackRecord.executeOps(BackStackRecord.java:439) 
    at androidx.fragment.app.FragmentManagerImpl.executeOps(FragmentManagerImpl.java:2079) 
    at androidx.fragment.app.FragmentManagerImpl.executeOpsTogether(FragmentManagerImpl.java:1869) 
    at androidx.fragment.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManagerImpl.java:1824) 
    at androidx.fragment.app.FragmentManagerImpl.execPendingActions(FragmentManagerImpl.java:1727) 
    at androidx.fragment.app.FragmentManagerImpl$2.run(FragmentManagerImpl.java:150) 
    at android.os.Handler.handleCallback(Handler.java:873) 
    at android.os.Handler.dispatchMessage(Handler.java:99) 
    at android.os.Looper.loop(Looper.java:193) 
    at android.app.ActivityThread.main(ActivityThread.java:6669) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858) 

错误来自这个

@Nullable
public View onCreateView(@NonNull LayoutInflater layoutInflater, @Nullable ViewGroup viewGroup, 
@Nullable Bundle bundle) {
    return layoutInflater.inflate(mo8480m(), viewGroup);
}

mo8480m 方法

public int mo8480m() {
     return R.layout.framgent_main;
}

摇篮构建

buildscript {
    repositories {
        jcenter()
        google()
        maven { url "https://maven.google.com" }
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:4.0.0'
        classpath 'com.google.gms:google-services:4.3.3'
    }
}
apply plugin: 'com.android.application'

repositories {
    mavenCentral()
    jcenter()
    google()
    maven { url "https://maven.google.com" }
    mavenCentral()
}

android {
    compileSdkVersion 28
    buildToolsVersion '28.0.3'

    defaultConfig {
        applicationId 'com.test2.app'
        minSdkVersion 23
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        vectorDrawables.useSupportLibrary = true
    }
    buildFeatures{
        dataBinding = true
//        viewBinding = true
    }
    lintOptions {
        abortOnError false
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

dependencies {
    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'com.google.android.material:material:1.2.0-beta01'
    implementation 'org.jetbrains:annotations:15.0'
    implementation 'com.github.ybq:Android-SpinKit:1.4.0'
    implementation 'com.karumi:dexter:6.1.2'
    implementation 'com.makeramen:roundedimageview:2.3.0'
    implementation 'com.tbuonomo.andrui:viewpagerdotsindicator:4.1.2'
    implementation 'com.github.bumptech.glide:glide:4.11.0'
    annotationProcessor 'com.github.bumptech.glide:compiler:4.11.0'
    implementation 'joda-time:joda-time:2.10.6'
    implementation 'me.relex:circleindicator:2.1.4'
    implementation "androidx.viewpager2:viewpager2:1.0.0"
    implementation 'androidx.core:core:1.0.0'
    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
    implementation 'androidx.appcompat:appcompat:1.0.0'
    implementation 'androidx.fragment:fragment:1.0.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    implementation 'androidx.multidex:multidex:2.0.0'

    annotationProcessor "androidx.databinding:databinding-compiler:3.2.0-alpha16"

    implementation "androidx.annotation:annotation:1.1.0"
    implementation 'com.google.code.gson:gson:2.8.5'
    implementation 'com.google.android.gms:play-services-analytics:17.0.0'
    implementation 'com.google.android.gms:play-services-base:17.2.1'
    implementation 'com.google.android.gms:play-services-gass:19.1.0'
    implementation 'com.google.android.gms:play-services-stats:17.0.0'
    implementation 'com.google.android.gms:play-services-tasks:17.0.2'
    implementation 'com.google.android.gms:play-services-basement:17.2.1'
    implementation 'com.google.android.gms:play-services-location:17.0.0'
    implementation 'com.google.android.gms:play-services-analytics:17.0.0'
    implementation 'com.google.android.gms:play-services-ads:19.1.0'
    implementation 'com.google.android.gms:play-services-ads-base:19.1.0'
    implementation 'com.google.android.gms:play-services-ads-lite:19.1.0'
    implementation 'com.google.android.gms:play-services-ads-identifier:17.0.0'
    implementation 'com.google.android.gms:play-services-measurement:17.4.2'
    implementation 'com.google.android.gms:play-services-measurement-sdk:17.4.2'
    implementation 'com.google.android.gms:play-services-measurement-base:17.4.2'
    implementation 'com.google.android.gms:play-services-measurement-impl:17.4.2'
    implementation 'com.google.android.gms:play-services-measurement-sdk-api:17.4.2'
    implementation 'com.google.android.gms:play-services-places-placereport:17.0.0'

}

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.climate.forecast.weather.widgets"
    android:compileSdkVersion="28"
    android:compileSdkVersionCodename="9">

    <uses-sdk />

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

    <uses-feature
        android:name="android.hardware.location"
        android:required="false" />
    <uses-feature
        android:name="android.hardware.location.gps"
        android:required="false" />

    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE" />

    <application
        android:name="com.bsoft.weather2019.helper.MyApplication"
        android:allowBackup="true"
        android:appComponentFactory="androidx.core.app.CoreComponentFactory"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:largeHeap="true"
        android:theme="@style/AppTheme"
        android:usesCleartextTraffic="true">
        <meta-data
            android:name="com.google.android.gms.ads.APPLICATION_ID"
            android:value="@string/admod_app_id" />
        <uses-library
            android:name="org.apache.http.legacy"
            android:required="false" />

        <meta-data
            android:name="android.max_aspect"
            android:value="2.1" />
        <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />

        <receiver
            android:name="com.bsoft.weather2019.receiver.ConnectivityActionReceiver"
            android:enabled="true"
            android:label="ConnectivityActionReceiver">
            <intent-filter>
                <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
                <action android:name="android.net.wifi.STATE_CHANGE" />
            </intent-filter>
        </receiver>
        <receiver android:name="com.bsoft.weather2019.widget.WidgetBg14x2">
            <intent-filter>
                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
            </intent-filter>
            <meta-data
                android:name="android.appwidget.provider"
                android:resource="@xml/widget_bg14x2_info" />
        </receiver>

        <activity
            android:name="com.bsoft.weather2019.activity.SplashActivity"
            android:screenOrientation="portrait"
            android:theme="@style/Theme.MaterialComponents.NoActionBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name="com.bsoft.weather2019.fragment.SearchLocationFragment"
            android:screenOrientation="portrait" />

        <receiver android:name="com.bsoft.weather2019.widget.WidgetBg4x2">
            <intent-filter>
                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
            </intent-filter>
            <meta-data
                android:name="android.appwidget.provider"
                android:resource="@xml/widget_bg4x2_info" />
        </receiver>
        <receiver android:name="com.bsoft.weather2019.widget.WeatherWidgetDaily4x1">
            <intent-filter>
                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
            </intent-filter>
            <meta-data
                android:name="android.appwidget.provider"
                android:resource="@xml/weather_widget_daily4x1_info" />
        </receiver>
        <receiver android:name="com.bsoft.weather2019.widget.WeatherWidgetHourly4x1">
            <intent-filter>
                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
            </intent-filter>
            <meta-data
                android:name="android.appwidget.provider"
                android:resource="@xml/weather_widget_hourly4x1_info" />
        </receiver>
        <receiver android:name="com.bsoft.weather2019.widget.WeatherWidget4x2">
            <intent-filter>
                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
            </intent-filter>
            <meta-data
                android:name="android.appwidget.provider"
                android:resource="@xml/weather_widget4x2_info" />
        </receiver>
        <receiver android:name="com.bsoft.weather2019.widget.WeatherWidget4x1">
            <intent-filter>
                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
            </intent-filter>
            <meta-data
                android:name="android.appwidget.provider"
                android:resource="@xml/weather_widget4x1_info" />
        </receiver>
        <receiver android:name="com.bsoft.weather2019.widget.WeatherWidget4x4">
            <intent-filter>
                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
            </intent-filter>
            <meta-data
                android:name="android.appwidget.provider"
                android:resource="@xml/weather_widget4x4_info" />
        </receiver>

        <activity
            android:name="com.bsoft.weather2019.activity.MainActivity"
            android:screenOrientation="portrait"
            android:theme="@style/AppTheme"
            android:windowSoftInputMode="adjustNothing" />
        <service
            android:name="com.bsoft.weather2019.service.WeatherService"
            android:enabled="true"
            android:exported="true" />

        <receiver
            android:name="com.bsoft.weather2019.receiver.AlarmReceiver"
            android:enabled="true"
            android:exported="true" />
        <receiver
            android:name="com.bsoft.weather2019.receiver.BootCompleteReceiver"
            android:enabled="true"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
            </intent-filter>
        </receiver>

        <activity
            android:name="com.karumi.dexter.DexterActivity"
            android:theme="@style/Dexter.Internal.Theme.Transparent" />
        <activity
            android:name="com.google.android.gms.common.api.GoogleApiActivity"
            android:exported="false" />
        <activity
            android:name="com.google.android.gms.ads.AdActivity"
            android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
            android:exported="false" />

        <provider
            android:name="com.google.android.gms.ads.MobileAdsInitProvider"
            android:authorities="com.climate.forecast.weather.widgets.mobileadsinitprovider"
            android:exported="false"
            android:initOrder="100" />

        <receiver
            android:name="com.google.android.gms.measurement.AppMeasurementReceiver"
            android:enabled="true"
            android:exported="false" />
        <receiver
            android:name="com.google.android.gms.measurement.AppMeasurementInstallReferrerReceiver"
            android:enabled="true"
            android:exported="true"
            android:permission="android.permission.INSTALL_PACKAGES">
            <intent-filter>
                <action android:name="com.android.vending.INSTALL_REFERRER" />
            </intent-filter>
        </receiver>

        <service
            android:name="com.google.android.gms.measurement.AppMeasurementService"
            android:enabled="true"
            android:exported="false" />
        <service
            android:name="com.google.android.gms.measurement.AppMeasurementJobService"
            android:enabled="true"
            android:exported="false"
            android:permission="android.permission.BIND_JOB_SERVICE" />
    </application>
</manifest>

使用的主题

<style name="AppTheme" parent="Theme.MaterialComponents.NoActionBar">
        <item name="android:textColorHint">?attr/themeTextColorHint</item>
        <item name="android:windowAnimationStyle">@null</item>
        <item name="colorAccent">?attr/themeAccent</item>
        <item name="colorControlHighlight">?attr/themeColorHighlight</item>
        <item name="colorPrimary">?attr/themePrimary</item>
        <item name="colorPrimaryDark">?attr/themePrimaryDark</item>
    </style>

我到处都找遍了所有我能找到的东西都是与 ConstraintLayout 相关的,但没有一个有效,请帮助提前谢谢

4

0 回答 0