Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android “小部件原因”;“未安装应用程序”;错误_Android_Xml_Android Layout_Widget_Runtime Error - Fatal编程技术网

Android “小部件原因”;“未安装应用程序”;错误

Android “小部件原因”;“未安装应用程序”;错误,android,xml,android-layout,widget,runtime-error,Android,Xml,Android Layout,Widget,Runtime Error,我正在尝试为主屏幕创建我的第一个小部件。我已经在开发者网站上阅读了教程,在网络上搜索了教程、技巧和问题解决方案,但似乎仍然无法让它发挥作用 问题: 我可以毫无问题地运行应用程序。我还可以从菜单中选择应用程序的小部件(长时间单击主屏幕-->Android小部件-->可用小部件列表)。但是,当我选择我的小部件时,我会收到以下错误消息(作为祝酒词): “您的手机上未安装应用程序。” 这里是我的源代码: 舱单中的条目: <receiver android:name=".SubscriberStat

我正在尝试为主屏幕创建我的第一个小部件。我已经在开发者网站上阅读了教程,在网络上搜索了教程、技巧和问题解决方案,但似乎仍然无法让它发挥作用

问题:

我可以毫无问题地运行应用程序。我还可以从菜单中选择应用程序的小部件(长时间单击主屏幕-->Android小部件-->可用小部件列表)。但是,当我选择我的小部件时,我会收到以下错误消息(作为祝酒词): “您的手机上未安装应用程序。”

这里是我的源代码

舱单中的条目:

<receiver android:name=".SubscriberStateWidgetProvider" >
        <intent-filter>
            <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
        </intent-filter>

        <meta-data
            android:name="android.appwidget.provider"
            android:resource="@xml/subscriber_status_widget" />
</receiver>
<receiver android:name="SubscriberStateWidgetProvider" >
        <intent-filter >
            <action 
                android:name="android.appwidget.action.APPWIDGET_UPDATE" />
        </intent-filter>

        <meta-data
            android:name="android.appwidget.provider"
            android:resource="@xml/subscriber_status_widget" />
    </receiver>

AppWidgetInfoProvider xml:

<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
  android:minWidth="40dp"
  android:minHeight="40dp"
  android:updatePeriodMillis="300000"
  android:configure="de.xxx.SubscriberStateWidgetProvider">
</appwidget-provider>
<?xml version="1.0" encoding="utf-8"?>
  <appwidget-provider 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:initialLayout="@layout/subscriber_state_widget_layout"
    android:minHeight="72dp"
    android:minWidth="300dp"
    android:updatePeriodMillis="300000" >
  </appwidget-provider>

布局文件:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:padding="@dimen/widget_margin">
 <RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

      <ImageView
          android:id="@+id/subscriberStateWidgetImage"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:src="@drawable/acc_app_logo"
          android:layout_alignParentTop="true"
          android:layout_alignParentLeft="true"
          android:layout_margin="5dp" />
      <TextView 
          android:id="@+id/subscriberStateWidgetTextViewLable"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:text="@string/subscriberStatusText"
          android:layout_toRightOf="@+id/subscriberStateWidgetImage"
          android:layout_alignTop="@+id/subscriberStateWidgetImage"
          android:layout_marginLeft="5dp"/>

       <TextView 
          android:id="@+id/subscriberStateWidgetTextViewInfo"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_toRightOf="@+id/subscriberStateWidgetImage"
          android:layout_below="@+id/subscriberStateWidgetTextViewLable"
          android:layout_alignBottom="@+id/subscriberStateWidgetImage"
          android:layout_marginLeft="5dp"
          android:text="@string/subscriberStatusUnknown"/>

  </RelativeLayout>
</FrameLayout>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="8dip"
    android:background="@drawable/myshape" >

     <TextView
        android:id="@+id/subscriberStateLable"
        style="@android:style/TextAppearance.Medium"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/widgetImage"
        android:layout_toRightOf="@+id/widgetImage"
        android:gravity="center_horizontal|center_vertical"
        android:layout_margin="4dip"
        android:text="@string/subscriberStatusText" >
    </TextView>

    <TextView
        android:id="@+id/update"
        style="@android:style/TextAppearance.Medium"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/widgetImage"
        android:layout_toRightOf="@+id/widgetImage"
        android:gravity="center_horizontal|center_vertical"
        android:layout_margin="4dip"
        android:text="@string/subscriberStatusUnknown" >
    </TextView>
</RelativeLayout> 

AppWidgetProvider Klass:

public class SubscriberStateWidgetProvider extends AppWidgetProvider{

public String SUBSCRIBER_WIDGET_UPDATE = "subscriberWidgetUpdate";


@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
        int[] appWidgetIds) {
    // TODO Auto-generated method stub
    super.onUpdate(context, appWidgetManager, appWidgetIds);

    final int N = appWidgetIds.length;

    // Perform this loop procedure for each App Widget that belongs to this provider
    for (int i=0; i<N; i++) {
        int appWidgetId = appWidgetIds[i];
    }
}
}
公共类SubscriberStateWidgetProvider扩展了AppWidgetProvider{
公共字符串订户\u小部件\u UPDATE=“subscriberWidgetUpdate”;
@凌驾
public void onUpdate(上下文上下文,AppWidgetManager AppWidgetManager,
int[]appWidgetIds){
//TODO自动生成的方法存根
onUpdate(上下文、appWidgetManager、AppWidgetId);
final int N=appWidgetIds.length;
//对属于此提供商的每个应用程序小部件执行此循环过程
对于(inti=0;i最终使其工作:-)仍然不确定,但问题出在哪里

以下是我的工作源代码:

舱单中的条目:

<receiver android:name=".SubscriberStateWidgetProvider" >
        <intent-filter>
            <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
        </intent-filter>

        <meta-data
            android:name="android.appwidget.provider"
            android:resource="@xml/subscriber_status_widget" />
</receiver>
<receiver android:name="SubscriberStateWidgetProvider" >
        <intent-filter >
            <action 
                android:name="android.appwidget.action.APPWIDGET_UPDATE" />
        </intent-filter>

        <meta-data
            android:name="android.appwidget.provider"
            android:resource="@xml/subscriber_status_widget" />
    </receiver>

请参考下面的链接。这可能对您的问题有帮助。感谢您提供的链接。遗憾的是,它并没有解决我的问题。我已经为我的小部件指定了一个布局文件,并且在回答中也对链接进行了引用。我的所有活动都已在清单中注册,而我没有为我的小部件创建特殊活动。单击时,它应该(稍后)将用户转发到已激活的活动(通过应用程序打开时当前正在运行)