簡體   English   中英

Android小部件僅顯示用於調試; 應用圖標始終顯示

[英]Android widget only showing up for debug; app icon always showing

我簡單的窗口小部件應用程序在作為調試應用程序簽名后就可以安裝並正常運行,但是一旦我嘗試將其簽名以准備投放市場,我就會遇到奇怪的現象:在我卸載應用程序時,它不會顯示在窗口小部件列表中它會顯示為標准的Android“我沒有此”機器人圖標。

嘗試將此“缺失”小部件拖動到屏幕上會導致啟動器崩潰。

為了對此進行調查,我向其中一個活動添加了MAIN / LAUNCH意圖,該意圖在安裝時按預期顯示,並且在卸載時消失。

超級令人毛骨悚然的是,如果我重新安裝,啟動器顯示“我沒有這個”機器人圖標時,我的小部件會短暫替換該圖標,然后從列表中消失。

除了正常的“我正在卸載/安裝此文件”外,我在日志中沒有看到任何錯誤消息或發布的意圖。

是否有一些愚蠢而明顯的我想念的東西,例如“已簽名的應用程序必須專門注冊其小部件”,而在調試模式下是不需要的?

這是我的清單和窗口小部件屬性:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      android:versionCode="1"
      package="uk.org.baverstock.appghoul">
<uses-sdk
        android:minSdkVersion="4"
        android:targetSdkVersion="9"/>
<application android:icon="@drawable/icon" android:label="@string/app_name">

    <receiver android:name="uk.org.baverstock.appghoul.AppGhoulWidgetProvider">
        <intent-filter>
            <action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>
        </intent-filter>
        <meta-data android:name="android.appwidget.provider"
                   android:resource="@xml/appwidget_provider"/>
    </receiver>

    <activity android:name=".Configure"
              android:excludeFromRecents="true"
            >
        <intent-filter>
            <action android:name="android.appwidget.action.APPWIDGET_CONFIGURE"/>
        </intent-filter>
        <intent-filter>
            <!-- Why does this show up, when the widget doesn't? -->
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>

    <activity android:name=".ControlsChoiceActivity"
              android:theme="@android:style/Theme.Dialog"
              android:excludeFromRecents="true"
            />

    <activity android:name=".ReconfigureWidget"
              android:theme="@android:style/Theme.Dialog"
              android:excludeFromRecents="true"
            />

    <receiver
            android:name=".WidgetRescanner"
            android:label="WidgetRescanner"
            >
        <intent-filter>
            <action android:name="android.intent.action.PACKAGE_ADDED"/>
            <action android:name="android.intent.action.PACKAGE_CHANGED"/>
            <action android:name="android.intent.action.PACKAGE_REPLACED"/>
            <action android:name="android.intent.action.PACKAGE_REMOVED"/>
            <data android:scheme="package"/>
        </intent-filter>

    </receiver>

</application>
</manifest>

和小部件屬性:

<?xml version="1.0" encoding="utf-8"?>

<appwidget-provider
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:minWidth="72dp"
    android:minHeight="72dp"
    android:updatePeriodMillis="86400000"
    android:initialLayout="@layout/widget"
    android:configure="uk.org.baverstock.appghoul.Configure"
android:previewImage="@drawable/icon"
android:widgetCategory="home_screen">
<!--
android:resizeMode="horizontal|vertical"
android:initialKeyguardLayout="@layout/example_keyguard"

 -->
</appwidget-provider>

我認為這可能與釋放簽名密鑰過長有關,但各種實驗表明,即使使用2048密鑰,也會發生這種情況。

當我使用Gradle構建http://javatechig.com/android/app-widgets-example-in-android/時,也會發生這種情況,因此它似乎不是我的代碼。

我認為卸載我的應用程序后,我所做的任何事情都無法使啟動器崩潰,因此在我看來,這必須是Android錯誤:我在https://code.google.com/上進行了舉報p /安卓/問題/細節?ID = 61387

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM