小编Kar*_*ela的帖子

Android布局错误:"资源ID <res_id>不是STYLE类型(而是attr)"

我看到一个我以前从未见过的错误,因为Android阻止了我的一些布局文件在Eclipse中呈现.它们在运行时渲染得很好.

图形布局编辑器(和我的错误日志)中显示的错误是:"Resouce id 0x1010081不是STYLE类型(而是attr)"

我在我的R文件中搜索了资源ID 0x1010081,我找不到它所以我猜可能某种程度上我与内置的Android attr有冲突.我还验证了下面的所有样式属性都指向实际样式而不是attr.任何帮助赞赏.

这是我的完整布局代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/bkg_light"
    android:padding="@dimen/padding_med" >

    <RelativeLayout
        android:id="@+id/relativeLayout_activity"
        android:layout_width="fill_parent"
        android:layout_height="@dimen/button_height"
        android:background="@drawable/xml_button"
        android:padding="@dimen/padding_med" >

        <TextView            
            style="@style/text_large_bold_white"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_centerVertical="true"
            android:text="@string/activity" />

        <TextView
            android:id="@+id/textView_activity"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_marginRight="@dimen/margin_med"
            android:layout_toLeftOf="@+id/textView_arrow_right_start_date" 
            android:text="@string/none_selected"/>

        <TextView
            android:id="@+id/textView_arrow_right_start_date"
            style="@style/arrow_right"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_centerVertical="true" />
    </RelativeLayout>

    <!-- kv Duration -->

    <RelativeLayout
        android:id="@+id/relativeLayout_duration"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/relativeLayout_activity"
        android:layout_marginTop="@dimen/margin_large"
        android:background="@drawable/xml_button">

        <TextView
            android:id="@+id/textView_duration"
            style="@style/text_large_bold_white"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_centerVertical="true"
            android:text="@string/duration_lc" 
            android:paddingLeft="@dimen/padding_med"/>

        <Spinner
            android:id="@+id/spinner_duration"
            android:layout_width="wrap_content"
            android:layout_height="@dimen/button_height"
            android:layout_alignParentRight="true"
            android:entries="@array/array_durations"
            android:prompt="@string/duration_lc"
            android:spinnerMode="dropdown" 
            android:clickable="false"/>
    </RelativeLayout>

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

这是我的styles.xml: …

resources layout android android-layout android-resources

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

Android:ExternalSystemException:字符串索引超出范围:-130构建版本

因此,刚刚更新到Android Studio 1.4 Beta 4并且无法构建发布版本.我可以构建一个调试版本.这是我得到的错误:

ExternalSystemException: String index out of range: -130
Run Code Online (Sandbox Code Playgroud)

经过进一步检查,我看到了这个:

String index out of range: -130
com.intellij.openapi.externalSystem.model.ExternalSystemException: String index out of range: -130
at org.jetbrains.plugins.gradle.service.project.GradleExecutionHelper.execute(GradleExecutionHelper.java:223)
at com.android.tools.idea.gradle.invoker.GradleTasksExecutor.invokeGradleTasks(GradleTasksExecutor.java:400)
at com.android.tools.idea.gradle.invoker.GradleTasksExecutor.run(GradleTasksExecutor.java:221)
at com.intellij.openapi.progress.impl.CoreProgressManager$TaskRunnable.run(CoreProgressManager.java:563)
at com.intellij.openapi.progress.impl.CoreProgressManager$2.run(CoreProgressManager.java:152)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:452)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:402)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:54)
at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:137)
at com.intellij.openapi.progress.impl.ProgressManagerImpl$1.run(ProgressManagerImpl.java:126)
at com.intellij.openapi.application.impl.ApplicationImpl$8.run(ApplicationImpl.java:400)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
at org.jetbrains.ide.PooledThreadExecutor$1$1.run(PooledThreadExecutor.java:56)
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?我已经尝试使用Gradle 2.3 - 2.7并且总是在构建发布版本时遇到此错误.

来自主模块的build.gradle:

import java.util.regex.Pattern

buildscript {
repositories {
    maven { url 'https://maven.fabric.io/public' }
    mavenCentral()
}

dependencies { …
Run Code Online (Sandbox Code Playgroud)

android release build gradle

23
推荐指数
4
解决办法
1万
查看次数

如何查看Android应用程序特定的缓存?

有没有办法在Android中动态查看特定于应用程序的缓存?我正在将图像保存到缓存(/ data/data/my_app_package/cache),我99%肯定他们在那里保存,但不确定他们待在一起多久.

当我使用Eclipse中的DDMS文件资源管理器查看缓存时,它始终为空.我也尝试在ADB中检查适当的缓存目录,并且它总是空的.

有什么建议?

android caching image android-context

20
推荐指数
4
解决办法
11万
查看次数

Android:ViewPager卡在视图之间

我有一个在Fragments之间滑动的ViewPager.我正在使用FragmentStatePagerAdapter将Fragments提供给ViewPager.如果用户以正常速度向左滑动,然后非常快速地向右滑动,则可以使ViewPager进入奇怪状态,其中显示多个碎片.

例如,如果用户在片段A上,则以正常速度向左滑动到片段B,然后快速向右滑动以返回到片段A,然后在屏幕上显示片段A和B.

任何人对于为什么会发生这种情况有任何想法或者预防它的好方法?

这是它的样子: 在此输入图像描述

这是我在XML中的ViewPager定义:

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

<com.company.views.CustomActionBar
    android:id="@+id/customActionBar"
    android:layout_width="match_parent"
    android:layout_height="@dimen/height_actionbar"
    android:layout_alignParentTop="true"/>

<android.support.v4.view.ViewPager
    android:id="@+id/viewPager"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/customActionBar"/>
Run Code Online (Sandbox Code Playgroud)

此外,我记录了来自onPageChangeListener()的输出,并注意到当ViewPager卡在视图之间时,它报告的positionOffset为0.这是ViewPager的值在从STATE_DRAGGING转换为STATE_SETTLING到STATE_IDLE时的样子奇怪的状态:

state = 0 prevState:2 position:1 positionOffset:0.0

state = 1 prevState:0 position:1 positionOffset:0.0

state = 2 prevState:1 position:1 positionOffset:0.4069444

state = 0 prevState:2 position:2 positionOffset:0.0

所以看起来好像ViewPager正在向我报告错误的positionOffset.

完整的示例代码活动和适配器:

public class ActivityBagelProfileViewer extends CustomAbstractFragmentActivity
    implements CustomActionBarContract, ListenerProgress, ListenerSync
{
public static final String EXTRA_BAGEL_INDEX = "BAGEL";

public static final int REQUEST_CODE_BAGEL_PROFILE_VIEWER = 4000;
public static final int RESULT_GO_TO_PASS_FLOW = 12;
public static final …
Run Code Online (Sandbox Code Playgroud)

user-interface android android-layout android-fragments android-viewpager

18
推荐指数
2
解决办法
3905
查看次数

如何确定用户是否取消Google Play订阅?

即将在我们的Android应用程序中构建订阅产品,但有一点不清楚了解取消订阅的最佳方式.我们计划让用户取消的唯一方法是让他们转到Google Play商店并明确取消,但在这种情况下,我们的后端将不会收到通知.

Google Play Developer API文档明确表示您不能在API中查询所有订阅的状态,那么我们应该如何知道哪些用户取消了订阅?

任何帮助非常感谢!

android subscriptions google-play google-play-developer-api

18
推荐指数
2
解决办法
5249
查看次数

如何告诉Gradle在命令行中使用不同的AndroidManifest?

我有一个多模块项目.从我的项目的根目录(包含多个模块),我希望能够调用'gradle build'并让它在我的一个模块中使用不同的AndroidManifest,这取决于我传入的一些参数.什么是最好的方法来完成这个?我应该使用gradle.properties文件还是可以在settings.gradle文件中以某种方式指定不同的build.gradle?任何帮助赞赏!

settings.gradle:

include 'ActionBarSherlock'
include '<main_app>'
Run Code Online (Sandbox Code Playgroud)

的build.gradle:

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:0.4.2'
    }
}

apply plugin: 'android'

dependencies {
    compile project(':ActionBarSherlock')
}

android {
    buildToolsVersion "17.0"
    compileSdkVersion 17

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在寻找使用不同AndroidManifest.xml的最佳方法,比如我在//test/AndroidManifest.xml中使用的那个.我需要能够从命令行指定此更改.有任何想法吗?

command-line android command-line-arguments gradle android-manifest

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

Gradle:如何为需要相同Activity但具有不同intent-filters的不同buildType合并Android清单文件

所以我试图使用gradle来创建一个单独的buildType,但是buildType需要为同一个Activity使用不同的特性.在这种情况下,我的splash活动需要一个不同的intent-filter,具体取决于buildType.这可能吗?

我在gradle中收到以下错误:

:Tinder:processUtestManifest
[AndroidManifest.xml:67, AndroidManifest.xml:38] Trying to merge incompatible /manifest/application/activity[@name=com.<company_name>.activities.ActivitySplash] element:
  <activity
      @android:name="com.<company_name>.activities.ActivitySplash"
      <intent-filter>
          <action
--            @android:name="android.intent.action.MAIN">
  <activity
      @android:name="com.<company_name>.activities.ActivitySplash"
      <intent-filter>
          <action
++            @android:name="com.apphance.android.LAUNCH">
Run Code Online (Sandbox Code Playgroud)

action build intentfilter gradle android-manifest

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

Gradle zipAlign任务不起作用?

似乎Gradle zipAlign任务对我不起作用,不确定我做错了什么.我尝试过包含zipAlign任务,但不包括它,但它似乎没有什么区别.我的gradle脚本吐出了一个"release"版本,但是当我尝试上传我的.apk时,根据开发者控制台它永远不会压缩对齐.

这是我的构建脚本:

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:0.4.2'
    }
}

apply plugin: 'android'

dependencies {
    compile project(':facebook-android-sdk-3.0.1:facebook')
    compile project(':google-play-services_lib')
    compile project(':nineoldandroids')
    compile project(':SlidingMenu-master:library')
    compile project(':ViewPagerIndicator')
    compile project(':volley')
    compile project(':windowed-seek-bar')
    compile files('compile-libs/androidannotations-2.7.1.jar', 'libs/Flurry_3.2.1.jar', 'libs/google-play-services.jar', 'libs/gson-2.2.4.jar', 'libs/picasso-1.1.1.jar', 'libs/crittercism_v3_0_11_sdkonly.jar', 'libs/gcm.jar', 'libs/apphance-library.jar')
}

android {
    buildToolsVersion "17.0"
    compileSdkVersion 17

    signingConfigs {
        debug {
            storeFile file('keystores/debug.keystore')
        }
    }

    buildTypes {
        debug {
            sourceSets {
                main {
                    manifest.srcFile 'AndroidManifest.xml'
                    java.srcDirs = ['src']
                    resources.srcDirs = ['src']
                    aidl.srcDirs = ['src']
                    renderscript.srcDirs = ['src'] …
Run Code Online (Sandbox Code Playgroud)

build-automation android build-process gradle

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

如果单击上一项,Android PagerAdapter不会报告正确的位置

我有一个ViewPager w /负边距设置为获得这样的效果: 在此输入图像描述

现在,我想要发生的是当我点击当前视图左侧或右侧的视图时.它应该选择该视图并在ViewPager上调用setCurrentItem().这适用于当前项右侧的视图,但不适用于当前项左侧的视图.当我点击该视图时,报告给我的位置是当前视图的位置.

如果它有帮助,这里有一些代码.这是来自PagerAdapter.instantiateItem(),我在onClick()上触发:

    @Override
    public Object instantiateItem(final ViewGroup container, final int position)
    {
        cardLayout.setTag(profile);
        cardLayout.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View view)
            {
                // mOnItemClickListener passed in to adapter on initialization
                mOnItemClickListener.onItemClick(null, view, position, 0);
                // other stuff happens here as well
            }
        });
    }
Run Code Online (Sandbox Code Playgroud)

整个PagerAdapter类适用于任何有兴趣的人:

static class GiveTenPagerAdapter extends PagerAdapter
{
    private final int ANIMATION_DURATION;
    private ListenerOnGiveTakeClick mListenerOnGiveTakeClick;
    private List<GiveTen> mGiveTens;
    private Context mContext;
    private LayoutInflater mInflater;

    private boolean mIsCrossFadeAnimationRunning;
    private int mSquarePhotoSideLength;

    GiveTenPagerAdapter(List<GiveTen> giveTens, Context context, …
Run Code Online (Sandbox Code Playgroud)

android android-pageradapter

10
推荐指数
1
解决办法
1098
查看次数

运行在Android Gradle构建中运行Proguard的堆

当我尝试在我的Gradle构建中在本地机器上运行Proguard时,出现"Java堆空间"错误.特别:

:<app_name>:proguardRelease FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':<app_name>:proguardRelease'.
> Java heap space
Run Code Online (Sandbox Code Playgroud)

我尝试设置我的GRADLE_OPTS = -Xmx2048m,但我仍然收到堆空间错误.

有什么建议?

这是我的日志输出的结束:

:Tinder:proguardRelease
ProGuard, version 4.9
Reading input...
Reading program directory [/Users/jabdulius/Documents/Dropbox/workspace-tinder/Tinder/build/classes/release]
Reading program jar [/Users/jabdulius/Documents/Dropbox/workspace-tinder/Tinder/build/exploded-bundles/library.aar/classes.jar] (filtered)
Reading program jar [/Users/jabdulius/Documents/Dropbox/workspace-tinder/Tinder/libs/androidannotations-api-2.7.1.jar] (filtered)
Reading program jar [/Users/jabdulius/Documents/Dropbox/workspace-tinder/Tinder/libs/picasso-1.1.1.jar] (filtered)
Reading program jar [/Users/jabdulius/Documents/Dropbox/workspace-tinder/Tinder/libs/gcm.jar] (filtered)
Reading program jar [/Users/jabdulius/Documents/Dropbox/workspace-tinder/Tinder/build/exploded-bundles/ViewPagerIndicator.aar/classes.jar] (filtered)
Reading program jar [/Users/jabdulius/Documents/Dropbox/workspace-tinder/Tinder/build/exploded-bundles/nineoldandroids.aar/classes.jar] (filtered)
Reading program jar [/Users/jabdulius/Documents/Dropbox/workspace-tinder/Tinder/libs/crittercism_v3_0_11_sdkonly.jar] (filtered)
Reading program jar [/Users/jabdulius/Documents/Dropbox/workspace-tinder/Tinder/libs/google-play-services.jar] (filtered)
Reading program jar …
Run Code Online (Sandbox Code Playgroud)

obfuscation build heap-memory proguard gradle

9
推荐指数
1
解决办法
2893
查看次数