小编500*_*865的帖子

错误:<item>标记需要一个'drawable'属性或定义drawable的子标记

item_bg_selector.xml在drawable文件夹中创建了一个状态列表选择器文件,如下所示:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:state_selected="true" 
      android:drawable="@drawable/item_background_selected" />
  <item android:state_focused="true" 
      android:drawable="@drawable/item_background_selected" />
  <item android:state_pressed="true" 
      android:drawable="@drawable/item_background_selected" />
  <item android:drawable="@android:color/transparent"/>
</selector>
Run Code Online (Sandbox Code Playgroud)

然后我定义一个样式元素

<style name="Item">
    <item name="android:layout_width">wrap_content</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:background">@drawable/item_bg_selector</item>
</style>
Run Code Online (Sandbox Code Playgroud)

然后我尝试创建ImageButton这样的:

    <ImageButton style="@style/Item"
        android:id="@id/btn_home"
    android:src="@drawable/home_button" />
Run Code Online (Sandbox Code Playgroud)

Eclipse不断在Event Details窗口中给出以下错误:

Failed to parse file /path/to/projectdir/res/drawable/item_bg_selector.xml
Run Code Online (Sandbox Code Playgroud)

异常跟踪如下:

org.xmlpull.v1.XmlPullParserException: Binary XML file line #16: <item> tag requires a 'drawable' attribute or child tag defining a drawable
    at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:167)
    at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:787)
    at android.graphics.drawable.Drawable.createFromXml(Drawable.java:728)
    at com.android.layoutlib.bridge.impl.ResourceHelper.getDrawable(ResourceHelper.java:208)
    at com.android.layoutlib.bridge.android.BridgeTypedArray.getDrawable(BridgeTypedArray.java:731)
    at android.view.View.<init>(View.java:1885)
    at android.widget.ImageView.<init>(ImageView.java:112) …
Run Code Online (Sandbox Code Playgroud)

layout android imagebutton statelistdrawable

31
推荐指数
5
解决办法
4万
查看次数

Android:拥有targetSDK> BuildTarget的后果

我想知道拥有的后果targetSDK > buildTarget.

最近我发现,如果我保持buildTarget=16targetSDK=17标签上我的平板电脑(运行4.1.1,API等级16)移动到动作条的中心.我无法使行为合理化.有人可以解释为什么会这样吗?

android

18
推荐指数
1
解决办法
875
查看次数

DynamoDB - 设置项目的全局二级索引

我有一个具有以下属性的发电机表:

  • id(数字 - 主键)
  • 标题(字符串)
  • created_at(数字 - 长)
  • tags(StringSet - 包含一组标签,表示android,ios等)

我希望能够通过标签查询 - 获取标记为android的所有项目.我怎么能在DynamoDB中做到这一点?看起来全局二级索引只能在ScalarDataTypes(Number和String)上构建,而不能在一个集合中的项目上构建.

如果我采用的方法是错误的,通过创建不同的表或更改属性来实现它的另一种方法也没关系.

amazon-dynamodb

18
推荐指数
3
解决办法
8280
查看次数

Android - 在应用项目中拥有提供商权限

一个android库项目包含一些提供程序,其权限在合同类中定义如下:

public static final String CONTENT_AUTHORITY = "my.com.library.providers.tester";
private static final Uri BASE_CONTENT_URI = Uri.parse("content://" + CONTENT_AUTHORITY);
Run Code Online (Sandbox Code Playgroud)

现在有很多应用程序项目使用这个库项目.我目前面临的问题是,对于每个应用程序项目,我需要在库项目中为每个应用程序设置一个单独的分支,以便拥有唯一的内容权限.这会产生一些版本管理问题(例如将功能/错误修复从一个分支传播到每个其他分支等).相反,我想将定义内容权限的责任委托给app项目.有没有办法实现这个目标?

java android authority android-contentprovider android-library

17
推荐指数
2
解决办法
8117
查看次数

是否可以使用ViewPager执行此Android屏幕动画?

我需要使用自定义动画制作2个屏幕,如下所示:


          Screen 1                                    Screen 2
 -----------------------------              ------------------------------
|                   |         |            |        |                     |
|                   |         |            |        |                     |
|                   |         |            |        |                     |
|                   |         |            |        |                     |
|                   |         |            |        |                     |
|                   |         |            |        |                     |
|                   |         |            |        |                     |
|                   |         |            |        |                     |
|       List 1      |  List2  | ---------> | List 3 |      List 4         |
|                   |         |            |        |                     |
|                   |         |            |        | …

android android-animation android-fragments android-viewpager

13
推荐指数
1
解决办法
2347
查看次数

Android - Proguard重复zip条目错误

我想在一个使用android库项目android应用程序中使用proguard ,我收到以下错误:

java.io.IOException: Can't write 
    [/private/var/folders/Pg/PgUpPJQ-E5qxL7jX6kpdCE+++TI/-Tmp-/android_3140050575281008652.jar] 
    (Can't read [proguard.ClassPathEntry@1f8d244] 
    (Duplicate zip entry 
    [be.class == android_144638064543155619.jar:com/comp/dp/library/R$anim.class]))
at proguard.OutputWriter.writeOutput(OutputWriter.java:224)
at proguard.OutputWriter.execute(OutputWriter.java:120)
at proguard.ProGuard.writeOutput(ProGuard.java:391)
at proguard.ProGuard.execute(ProGuard.java:152)
at proguard.ProGuard.main(ProGuard.java:499)
Run Code Online (Sandbox Code Playgroud)

我的proguard.cfg文件就是这个,还有一些-libraryjars引用了rt.jar几个其他依赖库.

我的猜测是这个问题与使用Library Project有关,而proguard正在尝试两次处理来自库项目的条目.但我不确定应该用哪种方法来解决这个问题.

任何建议/方向都非常感谢.

更新1: 通过删除-injars bin/classes我能够解决这个问题.我的猜测是因为proguard处理库项目和应用程序项目.class库项目的文件被处理了两次.一旦进入库项目的bin/classes文件夹,另一次进入应用程序项目的bin/classes文件夹.

android proguard

12
推荐指数
1
解决办法
2万
查看次数

Git - 在init目录中初始化了

git --bare init在一个错误的目录(在服务器中)运行.我在该目录中看到文件branches,config,deps等..如何撤消它?

git undo git-bare

11
推荐指数
2
解决办法
7845
查看次数

奇怪的行为 - VideoViewer Fragment无法使用MediaController

我正在尝试创建一个VideoViewer片段.以下是我尝试的2个案例和观察结果.对于这两种情况,片段的视图从以下布局中膨胀:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" 
android:layout_height="match_parent"
android:gravity="center">

<VideoView android:id="@+id/fragment_video_viewer_video"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_gravity="center" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

案例1:没有媒体控制器的VideoView -工作正常.以下是该onActivityCreated方法的代码

/* Initialize the variables here, retrieve views and  */
@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    // Assignment for the local variables
    mVideoView = (VideoView) getView().findViewById(R.id.fragment_video_viewer_video);
    mVideoView.setVideoPath("/sdcard/family_guy_test.3gp");//(videoUri);
    mVideoView.requestFocus();
    mVideoView.start();
}
Run Code Online (Sandbox Code Playgroud)

案例2:带有媒体控制器的VideoView -当我触摸VideoView时,应用程序崩溃.以下是该onActivityCreated方法的代码

/* Initialize the variables here, retrieve views and  */
@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    // Assignment for the local variables
    mVideoView = (VideoView) getView().findViewById(R.id.fragment_video_viewer_video);
    mVideoView.setVideoPath("/sdcard/family_guy_test.3gp");//(videoUri); …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-videoview

8
推荐指数
1
解决办法
4901
查看次数

Android Proguard - Jackson的TypeReference类中的IllegalArgumentException

如果proguard用于混淆,Android应用程序崩溃.下面是堆栈跟踪.

Caused by: java.lang.IllegalArgumentException: Internal error: 
  TypeReference constructed without actual type information
    at a.b.a.g.b.<init>(TypeReference.java:35)
    at a.c.d.q.<init>(StdCouchDbInstance.java:22)
    at a.c.d.p.<clinit>(StdCouchDbInstance.java:22)
Run Code Online (Sandbox Code Playgroud)

我正在使用该EktorpClient库(使用couchdb)并StdCouchDbInstance.java引用文件并TypeReference.java包中.有关在Proguard配置文件中应该使用哪个选项来解决此问题的任何建议?

android proguard illegalargumentexception jackson

7
推荐指数
1
解决办法
1689
查看次数

Android Fragment - 使用activity的loadermanager而不是Fragment.好吗?

给定一个使用加载器从数据库加载(大量)数据的片段.

问题:

我有一个寻呼机适配器,当用户离开拿着它的标签时会破坏该片段,并在用户返回该标签时重新创建它.由于这种重新创建,每次都会创建一个新的加载器,并且每次都会加载数据.

题 :

为了避免每次创建片段时重新创建加载器,是否可以在片段getActivity.getSupportLoaderManager.initLoader(loaderId, null, false)onActivityCreated方法中使用?

我试过它,测试它,似乎工作正常.但我不相信这是对的.

android fragment android-loadermanager android-loader

7
推荐指数
1
解决办法
3363
查看次数