Android的Livewallpaper设置无法从加载“配置...”菜单菜单、加载、Android、Livewallpaper

2023-09-06 19:23:29 作者:绯色琉璃

我无法加载由壁纸>配置...。

动态壁纸preferences

当我从Livewallpaper菜单中点击设置按钮preferences加载的罚款。下面是一些屏幕截图,以便更好地解释错误:

错误日志

清单文件如下:

 <?XML版本=1.0编码=UTF-8&GT?;<清单的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android      包=com.android.RrD      安卓版code =1      机器人:=的versionName1.0>    <采用-SDK安卓的minSdkVersion =8/>    <使用特征的android:NAME =android.software.live_wallpaper/>    <使用许可权的android:NAME =android.permission.INTERNET对/>    <使用许可权的android:NAME =android.permission.ACCESS_FINE_LOCATION/>    <使用许可权的android:NAME =android.permission.ACCESS_COARSE_LOCATION/>        <使用许可权的android:NAME =android.permission.ACCESS_NETWORK_STATE/>    <应用机器人:图标=@绘制/图标机器人:标签=@字符串/ APP_NAME    机器人:权限=android.permission.BIND_WALLPAPER>        <服务机器人。LiveWallpaperNAME =            机器人:标签=@字符串/ APP_NAME            机器人:图标=@绘制/图标>            &所述;意图滤光器>                <作用机器人:名字=android.service.wallpaper.WallpaperService/>            &所述; /意图滤光器>            <元数据机器人:名字=android.service.wallpaper                机器人:资源=@ XML / livewallpaper/>        < /服务>    <活动机器人:为pam_ preFS:标签=为pam_ preFS机器人名=机器人:主题=@安卓风格/ Theme.Light.WallpaperSettings机器人:出口=真正的机器人:图标=@绘制/图标>            <使用许可权的android:NAME =android.permission.BIND_WALLPAPER/>        < /活性GT;    < /用途>< /清单> 
CAD怎么加载插件,并且设置为自动加载

解决方案

在清单文件修补左右后想通了。增加了一个意图过滤器类别preFERENCE。'和;服务标签内移动BIND_WALLPAPER许可。这里是新的清单文件:

 <清单的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android  包=com.android.RrD  安卓版code =1  机器人:=的versionName1.0><采用-SDK安卓的minSdkVersion =8/><使用特征的android:NAME =android.software.live_wallpaper/><使用许可权的android:NAME =android.permission.INTERNET对/><使用许可权的android:NAME =android.permission.ACCESS_FINE_LOCATION/><使用许可权的android:NAME =android.permission.ACCESS_COARSE_LOCATION/><使用许可权的android:NAME =android.permission.BIND_WALLPAPER/>    <使用许可权的android:NAME =android.permission.ACCESS_NETWORK_STATE/>   <应用    机器人:图标=@绘制/图标    机器人:标签=@字符串/ APP_NAME    >    <服务机器人。LiveWallpaperNAME =        机器人:标签=@字符串/ APP_NAME        机器人:图标=@绘制/图标        机器人:权限=android.permission.BIND_WALLPAPER>        &所述;意图滤光器>            <作用机器人:名字=android.service.wallpaper.WallpaperService/>        &所述; /意图滤光器>        <元数据机器人:名字=android.service.wallpaper            机器人:资源=@ XML / livewallpaper/>    < /服务><活动机器人:标签=为pam_ preFS        机器人:名字=。为pam_ preFS        机器人:出口=真正的机器人:图标=@绘制/图标>         &所述;意图滤光器>            <类机器人:名字=。android.intent.category preFERENCE/>        &所述; /意图滤光器>    < /活性GT;< /用途>< /清单> 

I am unable to load the live wallpaper preferences from 'Wallpaper>Configure...'.

The preferences load fine when i click the settings button from within the Livewallpaper menu. Here are some screen shots to better explain the error:

Error Log

The manifest file is as follows:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.android.RrD"
      android:versionCode="1"
      android:versionName="1.0">

    <uses-sdk android:minSdkVersion="8" />

    <uses-feature android:name="android.software.live_wallpaper" />

    <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" />

    <application android:icon="@drawable/icon" android:label="@string/app_name" 
    android:permission="android.permission.BIND_WALLPAPER">
        <service android:name=".LiveWallpaper"
            android:label="@string/app_name"
            android:icon="@drawable/icon">

            <intent-filter>
                <action android:name="android.service.wallpaper.WallpaperService" />
            </intent-filter>
            <meta-data android:name="android.service.wallpaper"
                android:resource="@xml/livewallpaper" />

        </service>

    <activity android:label="PAM_Prefs" android:name=".PAM_Prefs" android:theme="@android:style/Theme.Light.WallpaperSettings" android:exported="true" android:icon="@drawable/icon">
            <uses-permission android:name="android.permission.BIND_WALLPAPER" />    
        </activity>

    </application>

</manifest>

解决方案

figured it out after tinkering around with the manifest file. Added an intent filter 'category.PREFERENCE' & moved BIND_WALLPAPER permission inside the service tag. here is the new manifest file:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.android.RrD"
  android:versionCode="1"
  android:versionName="1.0">

<uses-sdk android:minSdkVersion="8" />

<uses-feature android:name="android.software.live_wallpaper" />

<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.BIND_WALLPAPER" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

   <application 
    android:icon="@drawable/icon" 
    android:label="@string/app_name" 
    >

    <service android:name=".LiveWallpaper"
        android:label="@string/app_name"
        android:icon="@drawable/icon"
        android:permission="android.permission.BIND_WALLPAPER">

        <intent-filter>
            <action android:name="android.service.wallpaper.WallpaperService" />
        </intent-filter>
        <meta-data android:name="android.service.wallpaper"
            android:resource="@xml/livewallpaper" />

    </service>

<activity android:label="PAM_Prefs"
        android:name=".PAM_Prefs" 

        android:exported="true" android:icon="@drawable/icon">
         <intent-filter>

            <category android:name="android.intent.category.PREFERENCE" />
        </intent-filter>
    </activity>

</application>
</manifest>