1

我一直在用andengine来创建动态壁纸,总的来说我对Android相当陌生。我一直在比较不同的例子(很难找到任何有用的东西),我想做的就是创建一个可以启动但显示黑屏的动态壁纸。

我认为我得到的错误很常见

06-15 16:30:01.946: E/AndroidRuntime(32471): FATAL EXCEPTION: main
06-15 16:30:01.946: E/AndroidRuntime(32471): java.lang.RuntimeException: Unable to instantiate service com.example.adtime.LiveWallpaperService: java.lang.ClassNotFoundException: com.example.adtime.LiveWallpaperService in loader dalvik.system.PathClassLoader[/data/app/com.example.adtime-2.apk]
06-15 16:30:01.946: E/AndroidRuntime(32471):    at android.app.ActivityThread.handleCreateService(ActivityThread.java:2943)
06-15 16:30:01.946: E/AndroidRuntime(32471):    at android.app.ActivityThread.access$3300(ActivityThread.java:125)
06-15 16:30:01.946: E/AndroidRuntime(32471):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2087)
06-15 16:30:01.946: E/AndroidRuntime(32471):    at android.os.Handler.dispatchMessage(Handler.java:99)
06-15 16:30:01.946: E/AndroidRuntime(32471):    at android.os.Looper.loop(Looper.java:123)

另外,这是我的清单:

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

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />
    <uses-feature 
        android:required="true"
        android:name="android.software.live_wallpaper">
        </uses-feature>

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <!--  Live Wallpaper Service -->
        <service android:name="com.example.adtime.LiveWallpaperService"
            android:enabled="true"
            android:permission="android.permission.BIND_WALLPAPER" 
            android:icon="@drawable/ic_launcher" 
            android:description="@string/wallpaper_description">
        <intent-filter android:priority="1">
            <action android:name="android.service.wallpaper.WallpaperService"/>
        </intent-filter> 
        <meta-data android:name="android.service.wallpaper"
            android:resource="@xml/wallpaper"/>
        </service>
    </application>

</manifest>

根据我一直在阅读的内容,问题似乎在于清单中的某个地方,我只是不确定在哪里。我一直在看不同的例子,我觉得我做得对,但显然不是。apk 已安装,但只要我打开动态壁纸,就会出现错误。(我正在尝试实际设备)

此外,我确实设置并链接了库,但我没有带有 jar 的 libs 文件夹,因为我相信这是旧方法。

您可以提供的任何信息都将是最有帮助的,谢谢。

4

2 回答 2

0

WallpaperService 只能在设备上测试,不要使用 Android 模拟器。你不需要android:required="true

您需要在 android 清单中添加一个活动:

<activity android:label="@string/app_name"
            android:name=".Settings"
            android:exported="true"
            android:theme="@android:style/Theme.Light.WallpaperSettings"
            android:icon="@drawable/ic_launcher" />
于 2013-08-07T23:34:43.830 回答
0

发生此错误可能是因为您的应用仅包含一项服务。如此SO question中所述,您不能仅使用服务创建应用程序。

于 2013-06-15T23:54:43.127 回答