1

dashclock拡張機能を作成しようとしているので、 example-extensionから始めましたが、 正しく動作しません。この拡張機能の例は、拡張機能リストのダッシュクロック設定で確認できますが、実際のダッシュクロック ウィジェットにはありません。このスタック トレースでバックグラウンドで定期的にクラッシュします。

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

手伝ってくれてありがとう

4

2 に答える 2

2

エラー:

java.lang.ClassNotFoundException:パスにクラス「com.example.dashclock.exampleextension.ExampleExtension」が見つかりませんでした:/data/app/com.example.dashclock.exampleextension-1.apk

これは、パッケージ内に配置ExampleExtension.javaする必要があるものを見つけることができないことを意味しますcom.example.dash clock.exampleextension


まず、サンプルファイルをeclipseにインポートせず、新しいAndroidアプリケーションを起動します

要求されたら、[アクティビティの作成]ボタンの選択を解除します

作成したら、srcフォルダーを右クリックしてパッケージを追加します。次に、パッケージを右クリックして、新しいクラスを作成します。この新しいクラスが拡張機能になります。こちらのDashclockサイトから2つのjarファイルを入手してください

それらをlibsフォルダーにドラッグします

これをマニフェストに追加します

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

マニフェストを保存し、赤い線で示されたエラーを見つけて、適切な文字列をstrings.xmlに追加します

これが空のExtensionクラスです

    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"))));

    }
    }
于 2013-02-25T18:52:58.363 に答える
0

jb15613が非常によく説明したことを実行した後に機能しない場合(コメントで、私のように機能していない人を見ました)、IntelliJで、プロジェクト構造のモジュール依存関係タブに設定して、 「コンパイル」としてJAR。

于 2013-06-17T19:50:44.010 に答える