标签: android-support-library

支持库VectorDrawable Resources $ NotFoundException

我使用的是Design Support Library版本23.4.0.我启用了gradle标志:

defaultConfig {
    vectorDrawables.useSupportLibrary = true
}
Run Code Online (Sandbox Code Playgroud)

我正在使用构建工具版本23.0.2,但仍然,我正在Resources$NotFoundException使用KitKat或更低版本.

它发生在我使用android:drawableLeft或时imageView.setImageResource(R.drawable.drawable_image).

是的,我把它放在我使用drawables的每个活动上

static {
    AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
}
Run Code Online (Sandbox Code Playgroud)

这是支持库的错误吗?

android android-support-library androiddesignsupport android-vectordrawable

67
推荐指数
8
解决办法
3万
查看次数

将BottomSheetDialogFragment的状态设置为展开

如何使用Android支持设计库(v23.2.1)将片段的状态设置为扩展BottomSheetDialogFragment为扩展BottomSheetBehavior#setState(STATE_EXPANDED)

https://code.google.com/p/android/issues/detail?id=202396说:

底部工作表首先设置为STATE_COLLAPSED.如果要展开它,请调用BottomSheetBehavior#setState(STATE_EXPANDED).请注意,您无法在视图布局之前调用该方法.

建议的做法需要将第一膨胀的观点,但我不知道我怎么会设置BottomSheetBehaviour到片段(BottomSheetDialogFragment).

View bottomSheet = coordinatorLayout.findViewById(R.id.bottom_sheet);  
BottomSheetBehavior behavior = BottomSheetBehavior.from(bottomSheet);  
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-support-library android-support-design

66
推荐指数
12
解决办法
5万
查看次数

onAttach()未在Fragment中调用

My Fragment onAttach(context)在启动时不会调用方法AppCompatActivity.

以XML格式创建片段:

<fragment
    android:id="@+id/toolbar"
    class="package.MainToolbarFragment"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    tools:layout="@layout/fragment_main_toolbar" />
Run Code Online (Sandbox Code Playgroud)

但如果我扩展它support.v4.Fragment,onAttach(context)请致电!

可能是什么问题呢?

当然,我可以扩展所有片段 v4.Fragment,但我不想要它.这是不好的做法吗?同时项目min sdk 14.

android android-fragments android-activity android-support-library fragmentmanager

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

为什么我不能将AndroidJUnit4和ActivityTestRule导入我的单元测试类?

我在导入一些Android UI测试框架时遇到了麻烦 - 我无法弄清楚出了什么问题!

这是我的班级:

@RunWith(AndroidJUnit4.class)
@LargeTest
public class ExampleUnitTest {

@Rule
public ActivityTestRule<MainActivity> mActivityRule = new ActivityTestRule(MainActivity.class);

@Test
public void listGoesOverTheFold() {
    onView(withText("Hello world!")).check(matches(isDisplayed()));
  }
}
Run Code Online (Sandbox Code Playgroud)

但由于某种原因,我得到错误'找不到符号ActivityTestRule'和'找不到符号AndroidJUnit4'.我试图导入它们但是找不到它们.

build.gradle中的依赖项设置为:

compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.4.0'
androidTestCompile 'com.android.support:support-annotations:23.4.0'

androidTestCompile 'com.android.support.test:runner:0.4'
androidTestCompile 'com.android.support.test:rules:0.4'
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.1'
androidTestCompile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.2'
Run Code Online (Sandbox Code Playgroud)

所以我认为我已经设置了所有依赖项 - 我一直在尝试很多东西,但没有运气.

有人有主意吗?

android junit4 android-support-library android-espresso

64
推荐指数
8
解决办法
3万
查看次数

Android Android支持存储库与Android支持库与谷歌存储库与谷歌播放服务之间的区别是什么

有人可以解释一下,请问Android支持资源库与Android支持资源库与谷歌资源库与谷歌播放服务有什么区别?

我的理解是,Google Repository与Google Play服务完全相同,只是将所有api分开(与经典的播放服务相比,这是一个包含所有内容的大jar)并且更适合在android studio中使用,因为现在您可以选择你想编译什么api(例如'com.google.android.gms:play-services-ads:+')vs依赖proguard在构建时去除不需要的api.

我对吗?

Android支持存储库与Android支持库如何?

android android-support-library google-play-services android-gradle-plugin android-sdk-manager

62
推荐指数
3
解决办法
2万
查看次数

无法解析符号AppCompatActivity - 无法识别支持v7库?

我试图找出为什么我的Android工作室没有正确识别AppCompat v7库.下面的import语句显示为灰色,并表示没有support.v7.app的包.以下是我的活动文件:

import android.support.v7.app.AppCompatActivity;


public class XApplicationActivity extends AppCompatActivity
Run Code Online (Sandbox Code Playgroud)

我的build.grade:

compile "com.android.support:appcompat-v7:22.0.0"
compile "com.android.support:support-annotations:$ANDROID_SUPPORT_VERSION"
compile "com.android.support:support-v4:$ANDROID_SUPPORT_VERSION"
Run Code Online (Sandbox Code Playgroud)

我的项目设置:

minSdkVersion = 14
targetSdkVersion = 21
compileSdkVersion = 21
buildToolsVersion = "22.0.1"
Run Code Online (Sandbox Code Playgroud)

所以我真的很困惑为什么这仍然给我带来问题.我已经尝试过的事情:

  • 清理/重建项目
  • 使缓存无效并重新启动
  • 检查十亿次以确保我安装了支持库(我绝对安装了最新的支持库和库)

有谁知道任何修复?这花了我很多时间,这真的令人沮丧.

android android-appcompat android-library android-support-library

60
推荐指数
12
解决办法
13万
查看次数

Android Selector使用VectorDrawables srcCompat绘制

我遇到了与VectorDrawables的新向后兼容性问题.在支持库中,23.2是一个新功能,用于向后兼容所生成的Android VectorDrawables.

我有一个ImageView,它是一个SelectorDrawable分配给.这个Drawable拥有几个VectorDrawables所以我认为我应该使用app:srcCompat来兼容.但它在我的Galaxy S2上使用android 4.1.2不起作用.

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/ic_gps_fixed_24dp"android:state_activated="true" android:state_selected="true"></item>
    <item android:drawable="@drawable/ic_gps_not_fixed_24dp" android:state_activated="true" android:state_selected="false"></item>
    <item android:drawable="@drawable/ic_gps_not_fixed_24dp" android:state_activated="false" android:state_selected="true"></item>
    <item android:drawable="@drawable/ic_gps_off_24dp" android:state_activated="false" android:state_selected="false"></item>
    <item android:drawable="@drawable/ic_gps_not_fixed_24dp"></item>
</selector>
Run Code Online (Sandbox Code Playgroud)

所有drawables都是vector xml文件.

当使用此SelectorDrawable与srcCompat时,我收到此错误:

  Caused by: android.content.res.Resources$NotFoundException: File res/drawable/  Caused by: android.content.res.Resources$NotFoundException: File res/drawable/ic_gps_fixed_24dp.xml from drawable resource ID #0x7f0201c1
                                                                           at android.content.res.Resources.loadDrawable(Resources.java:1951)
                                                                           at android.content.res.Resources.getDrawable(Resources.java:672)
                                                                           at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:173)
                                                                           at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:881).xml from drawable resource ID #0x7f0201c1
Run Code Online (Sandbox Code Playgroud)

使用android:src更糟糕.

如果我使用app:srcCompat中的一个矢量drawable,一切正常.所以我猜这是SelectorDrawable和兼容性的问题.

有没有人有同样的问题,并找到了解决方案,或者目前无法在Android 5之前的SelectorDrawables中使用VectorDrawables?

简要说明:

  • 编译目标API 23
  • 支持Libraray 23.3.0
  • vectorDrawables.useSupportLibrary = true
  • Gradle 2.0

android vector android-appcompat android-support-library android-vectordrawable

60
推荐指数
3
解决办法
3万
查看次数

为api 26设置Gradle(Android)

由于我已将Nexus 5x升级到Android O DP3,因此无法测试我的应用程序.我收到错误,因为我没有配置我的Gradle文件来使用新的API级别(26).

所以我改变了这个和依赖项,但是我的所有支持库都出现了错误

Failed to resolve: com.android.support:design:26.0.0-beta2
Run Code Online (Sandbox Code Playgroud)

点击

Install repository and sync project
Run Code Online (Sandbox Code Playgroud)

弹出progressdialog以下载正确的依赖项,但不会删除错误.清理项目,安装存储库然后重建项目也不起作用.

程序兼容性-V7

在appcompat-v7:26.0.0-beta2上,我得到(甚至在Gradle同步之前)带有错误的线条:

When using a compileSdkVersion older than android-O revision 2,
the support library version must be 26.0.0-alpha1 or lower (was 26.0.0-beta2)
Run Code Online (Sandbox Code Playgroud)

有人可以帮助我为Android API 26正确配置gradle文件吗?任何帮助,将不胜感激.

PS:我现在正在使用Gradle 3.0.0-alpha3,但在Gradle 2.3.2上得到了同样的错误

我的Gradle文件:

apply plugin: 'com.android.application'

android {
compileSdkVersion 26
buildToolsVersion '26.0.0'

defaultConfig {
    applicationId "********"
    minSdkVersion 21
    targetSdkVersion 26
    versionCode 3
    versionName "2.0"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
}

dependencies …
Run Code Online (Sandbox Code Playgroud)

android gradle android-support-library build.gradle android-8.0-oreo

59
推荐指数
6
解决办法
10万
查看次数

删除BottomNavigationView标签

谷歌发布了支持BottomNavigationView的新支持库v25

在此输入图像描述

有没有办法删除商品标签?

android android-support-library androiddesignsupport bottomnavigationview

56
推荐指数
6
解决办法
4万
查看次数

在AndroidManifest中添加'tools:replace ="Android:value"'到<meta-data>元素

我正在关注HeadFirst Android开发中的教程并在添加后遇到问题:private ActionBarDrawerToggle drawerToggle;

该控件已弃用,因此我按照Stack上的说明通过将com.android.support:appcompat-v7:26.0.0-alpha1添加到应用程序模块依赖项来解决该问题

但现在我收到以下构建错误:

错误:任务':app:processDebugManifest'的执行失败.

清单合并失败:来自[com.android.support:recyclerview-v7:25.3.1]的属性meta-data#android.support.VERSION@value value =(25.3.1)AndroidManifest.xml:24:9-31也是出现在[com.android.support:appcompat-v7:26.0.0-alpha1] AndroidManifest.xml:27:9-38 value =(26.0.0-alpha1).建议:在AndroidManifest.xml:22:5-24:34中添加'tools:replace ="android:value"'来覆盖.

这是代码:

android gradle android-manifest android-support-library android-studio

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