android - Dashclock 小部件示例扩展无法实例化服务

标签 android dashclock

我正在尝试写 dashclock扩展名,所以我从 example-extension 开始 但我无法让它正常工作。我可以在扩展列表的 dashclock 设置中看到这个示例扩展,但它不在实际的 dashclock 小部件上。它使用此堆栈跟踪定期在后台崩溃:

02-22 17:04:31.118: E/AndroidRuntime(25888): FATAL EXCEPTION: main
02-22 17:04:31.118: E/AndroidRuntime(25888): java.lang.RuntimeException: Unable to instantiate service com.example.dashclock.exampleextension.ExampleExtension: java.lang.ClassNotFoundException: Didn't find class "com.example.dashclock.exampleextension.ExampleExtension" on path: /data/app/com.example.dashclock.exampleextension-1.apk
02-22 17:04:31.118: E/AndroidRuntime(25888):    at android.app.ActivityThread.handleCreateService(ActivityThread.java:2513)
02-22 17:04:31.118: E/AndroidRuntime(25888):    at android.app.ActivityThread.access$1600(ActivityThread.java:141)
02-22 17:04:31.118: E/AndroidRuntime(25888):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1316)
02-22 17:04:31.118: E/AndroidRuntime(25888):    at android.os.Handler.dispatchMessage(Handler.java:99)
02-22 17:04:31.118: E/AndroidRuntime(25888):    at android.os.Looper.loop(Looper.java:137)
02-22 17:04:31.118: E/AndroidRuntime(25888):    at android.app.ActivityThread.main(ActivityThread.java:5041)
02-22 17:04:31.118: E/AndroidRuntime(25888):    at java.lang.reflect.Method.invokeNative(Native Method)
02-22 17:04:31.118: E/AndroidRuntime(25888):    at java.lang.reflect.Method.invoke(Method.java:511)
02-22 17:04:31.118: E/AndroidRuntime(25888):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
02-22 17:04:31.118: E/AndroidRuntime(25888):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
02-22 17:04:31.118: E/AndroidRuntime(25888):    at dalvik.system.NativeStart.main(Native Method)
02-22 17:04:31.118: E/AndroidRuntime(25888): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.example.dashclock.exampleextension.ExampleExtension" on path: /data/app/com.example.dashclock.exampleextension-1.apk
02-22 17:04:31.118: E/AndroidRuntime(25888):    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:65)
02-22 17:04:31.118: E/AndroidRuntime(25888):    at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
02-22 17:04:31.118: E/AndroidRuntime(25888):    at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
02-22 17:04:31.118: E/AndroidRuntime(25888):    at android.app.ActivityThread.handleCreateService(ActivityThread.java:2510)
02-22 17:04:31.118: E/AndroidRuntime(25888):    ... 10 more

感谢帮助

最佳答案

错误:

java.lang.ClassNotFoundException: Didn't find class "com.example.dashclock.exampleextension.ExampleExtension" on path: /data/app/com.example.dashclock.exampleextension-1.apk

这意味着它找不到 ExampleExtension.java 应该位于 com.example.dash clock.exampleextension


首先,不要将示例文件导入eclipse,启动一个全新的Android 应用程序

在询问时取消选择创建 Activity 按钮

创建好后,右键点击src文件夹,添加一个包。 然后右键单击包并创建一个新类。 这个新类(class)将成为你的延伸。 从 Dashclock 站点获取 2 个 jar 文件 here

将它们拖到你的 libs 文件夹中

将此添加到您的 list 中

    <application android:label="@string/app_name"
    android:icon="@drawable/ic_extension_yourIcon"
    android:theme="@android:style/Theme.Holo">

    <service android:name=".YourExtension"
        android:icon="@drawable/ic_extension_your_icon"
        android:label="@string/your_extension_title"
        android:permission="com.google.android.apps.dashclock.permission.READ_EXTENSION_DATA">
        <intent-filter>
            <action android:name="com.google.android.apps.dashclock.Extension" />
        </intent-filter>
        <meta-data android:name="protocolVersion" android:value="1" />
        <meta-data android:name="description"
            android:value="@string/your_extension_description" />
    </service>

</application>

保存 list ,找到红线指示的错误并将适当的字符串添加到您的 strings.xml

这是一个空的扩展类

    public class YourExtension extends DashClockExtension {

    @Override
    protected void onUpdateData(int reason) {

    publishUpdate(new ExtensionData()
    .visible(true)
    .icon(R.drawable.ic_extension_yourIcon)
    .status("This is the text when minimized")
    .expandedTitle("This is the white Title text when expanded")
    .expandedBody("This is the grey footer text when expanded")
    .clickIntent(new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com"))));

    }
    }

关于android - Dashclock 小部件示例扩展无法实例化服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15035324/

相关文章:

android - 通过 AlarmManager 创建的警报在 25 天后未运行(= 2^31 - 1 = 2147483647 毫秒)

java - 简单的 Android 应用程序没有响应

java - 如何在 Dashclock 扩展中维护持久的 BroadcastReceiver?

android - 本地应用程序的特定对象/图像检测,无需互联网

android - 如何读取检测到的 NFC 标签(NDEF 消息)。安卓NFC

android - 翻译动画部分的屏幕变为空白

java - CM Home 的 Android DashClock 扩展设置 (CyanogenMod 11)

android - Dashclock 小部件扩展未更新

android - 我正在制作一个简单的 Dashclock 日历扩展,但它停止了更新