0

我正在尝试将我的动态壁纸放在 Amazon App Store 上(此动态壁纸已经在 Google Play Store 上运行),但是,当我在 Amazon Developer 网站上上传相同的 APK 进行测试时,它会报告以下异常

03-06 06:00:50.741 7598 7598 E AndroidRuntime: 致命异常: main 03-06 06:00:50.741 7598 7598 E AndroidRuntime: java.lang.RuntimeException: 无法启动活动 ComponentInfo{com.rrapps.heavensdoor/com. rrapps.heavensdoor.PreviewActivity}:android.content.ActivityNotFoundException:在 android.app 的 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2229) 找不到处理 act=android.service.wallpaper.CHANGE_LIVE_WALLPAPER 的活动(有附加功能) .ActivityThread.handleLaunchActivity(ActivityThread.java:2283) 在 android.app.ActivityThread.access$600(ActivityThread.java:148) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1244) 在 android.os.Handler .dispatchMessage(Handler.java:99) 在 android.os.Looper.loop(Looper.java:151) 在 android.app.ActivityThread。main(ActivityThread.java:5204) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$ MethodAndArgsCaller.run(ZygoteInit.java:793) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) at dalvik.system.NativeStart.main(Native Method) 原因:android.content.ActivityNotFoundException:在 android.app.Instrumentation.execStartActivity(Instrumentation.java:1417) 的 android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1627) 上没有找到处理 act=android.service.wallpaper.CHANGE_LIVE_WALLPAPER (有附加功能)的活动.app.Activity.startActivityForResult(Activity.java:3424) 在 android.app.Activity.startActivityForResult(Activity.java:3385) 在 com.rrapps。Heavensdoor.PreviewActivity.onCreate(Unknown Source) at android.app.Activity.performCreate(Activity.java:5170) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) at android.app.ActivityThread.performLaunchActivity(ActivityThread.爪哇:2182)

以下是我设置壁纸的代码

        if (Build.VERSION.SDK_INT >= 16) {
        /*
         * Open live wallpaper preview (API Level 16 or greater).
         */
        intent.setAction(WallpaperManager.ACTION_CHANGE_LIVE_WALLPAPER);
        String pkg = MyWallpaperService.class.getPackage().getName();
        String cls = MyWallpaperService.class.getCanonicalName();
        intent.putExtra(WallpaperManager.EXTRA_LIVE_WALLPAPER_COMPONENT,
                new ComponentName(pkg, cls));
    } else {
        /*
         * Open live wallpaper picker (API Level 15 or lower).
         *
         * Display a quick little message (toast) with instructions.
         */
        intent.setAction(WallpaperManager.ACTION_LIVE_WALLPAPER_CHOOSER);
        Resources res = getResources();
        String hint = res.getString(R.string.picker_toast_prefix)
                + res.getString(R.string.lwp_name)
                + res.getString(R.string.picker_toast_suffix);
        Toast toast = Toast.makeText(this, hint, Toast.LENGTH_LONG);
        toast.show();
    }

    startActivityForResult(intent, 0);

我不确定问题是什么。任何帮助表示赞赏。

4

1 回答 1

0

Android 是一个有趣的世界,不幸的是,隐含意图的变化超出了我们(开发人员)的预期。特别适用于不需要遵守谷歌测试套件的亚马逊设备。在我的应用程序上,我看到ActivityNotFoundException尝试启动网络浏览器。

所以我的建议,即使它实际上并没有解决问题,它只是尝试抓住它:

try{
   startActivityForResult(intent, 0);
} catch(ActivityNotFoundException e) {
   // why amazon, why?
}
于 2015-03-06T14:27:11.623 回答