我正在遵循一些有关如何创建自定义运行时资源覆盖 (RRO) APK 的教程,但我无法启用我的。
adb shell cmd overlay list
...
com.example.mytarget
--- com.example.myoverlay
Google说
---
表示已安装,但有错误,无法启用。
adb shell cmd overlay dump com.example.myoverlay
com.example.myoverlay:0 {
mPackageName...........: com.example.myoverlay
mOverlayName...........: null
mUserId................: 0
mTargetPackageName.....: com.example.mytarget
mTargetOverlayableName.: null
mBaseCodePath..........: /system/product/overlay/myoverlays.apk
mState.................: STATE_MISSING_TARGET
mIsEnabled.............: true
mIsMutable.............: true
mPriority..............: 2147483647
mCategory..............: null
mIsFabricated..........: false
}
IDMAP OF com.example.myoverlay
<missing idmap>
文档说
mState.................: STATE_MISSING_TARGET
表示“您的目标未安装”。这听起来有点像一个循环,我不知道我应该做什么。
代码:
树:
└── MyOverlays
├── AndroidManifest.xml
└── res
└── xml
└── overlays.xml
AndroidManifest.xml:
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="https://schemas.android.com/apk/res/android"
package="com.android.systemui">
<application android:hasCode="false" />
<overlay android:targetPackage="com.android.systemui"
android:targetName="res.values.colors.xml"
android:resourcesMap="@xml/overlays"
android:priority="1"/>
</manifest>
overlays.xml:
<overlay xmlns:android="http://schemas.android.com/apk/res/android" >
<item target="color/global_actions_lite_background" value="#FFBF360C" />
<item target="color/notification_primary_text_color" value="#55FF0000" />
</overlay>
并按照本指南进行构建:https://github.com/MartinStyk/Android-RRO
安卓:12.1
设备:索尼 Xperia 1
ROM:血统Os
首先,您将信息转储到覆盖层
com.example.myoverlay
,这与您提供代码的覆盖层不同。您应该运行以下命令:
adb shell cmd overlay dump com.android.systemui
正如您在
AndroidManifest.xml
中指定的那样,您的 RRO 的封装是 com.android.systemui
。在命令的输出中,覆盖层com.example.myoverlay
具有状态STATE_MISSING_TARGET
,因为您可能没有安装任何具有包名称com.example.mytarget
的应用程序(这是您的目标)。还可以尝试将 RRO 软件包的名称更改为其他名称,以便更容易检查它是否已安装。
希望您一切顺利,如果您还有其他问题,请告诉我
您的目标包和当前应用程序包相同尝试将当前包更改为清单包,如下所示
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="https://schemas.android.com/apk/res/android"
package="com.companyname.yourUniqueAppName">
<application android:hasCode="false" />
<overlay android:targetPackage="com.android.systemui"
android:targetName="res.values.colors.xml"
android:resourcesMap="@xml/overlays"
android:priority="1"/>
</manifest>