- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我将 Android Studio 更新到 2.2,我的项目将不再构建。我的 Activity 的 super.onCreate(savedInstanceState) 给我一个错误:
java.lang.NoSuchMethodError: No static method getDrawable(Landroid/content/Context;I)Landroid/graphics/drawable/Drawable; in class Landroid/support/v4/content/ContextCompat; or its super classes (declaration of 'android.support.v4.content.ContextCompat' appears in /data/app/x.y.z-1/base.apk:classes32.dex)
at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:197)
at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:185)
at android.support.v7.widget.AppCompatDrawableManager.checkVectorDrawableSetup(AppCompatDrawableManager.java:720)
at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:190)
at android.support.v7.widget.TintTypedArray.getDrawableIfKnown(TintTypedArray.java:77)
at android.support.v7.app.AppCompatDelegateImplBase.<init>(AppCompatDelegateImplBase.java:127)
at android.support.v7.app.AppCompatDelegateImplV9.<init>(AppCompatDelegateImplV9.java:147)
at android.support.v7.app.AppCompatDelegateImplV11.<init>(AppCompatDelegateImplV11.java:27)
at android.support.v7.app.AppCompatDelegateImplV14.<init>(AppCompatDelegateImplV14.java:50)
at android.support.v7.app.AppCompatDelegateImplV23.<init>(AppCompatDelegateImplV23.java:29)
at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:199)
at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:181)
at android.support.v7.app.AppCompatActivity.getDelegate(AppCompatActivity.java:521)
at android.support.v7.app.AppCompatActivity.onCreate(AppCompatActivity.java:71)
at zz.yyy.xxx.activities.AsdActivity.onCreate(AsdActivity.java:12)
at android.app.Activity.performCreate(Activity.java:6904)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1136)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3266)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3415)
at android.app.ActivityThread.access$1100(ActivityThread.java:229)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1821)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:7325)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
我创建了一个全新的 Activity 以查看是否是我的代码导致了问题,但没有帮助。这是 Activity :
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class AsdActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_asd);
}
}
这是我的 build.gradle (app)
buildscript {
repositories {
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath 'io.fabric.tools:gradle:1.+'
}
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
repositories {
maven { url 'https://maven.fabric.io/public' }
}
android {
compileSdkVersion 24
buildToolsVersion "23.0.3"
defaultConfig {
minSdkVersion 21
targetSdkVersion 24
...
}
buildTypes {
debug {
...
minifyEnabled false
}
release {
...
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile('com.crashlytics.sdk.android:crashlytics:2.5.5@aar') {
transitive = true;
}
compile project(':ViewLib')
compile files('libs/commons-io-2.5.jar')
compile project(':GridHeaders')
compile 'com.amazonaws:aws-android-sdk-s3:2.2.16'
compile 'com.google.code.gson:gson:2.6.2'
compile 'com.squareup.okhttp3:okhttp:3.2.0'
compile 'com.github.franmontiel:PersistentCookieJar:v0.9.3'
compile 'com.amazonaws:aws-android-sdk-mobileanalytics:2.2.9'
compile('com.facebook.fresco:fresco:0.11.0') {
exclude module: 'support-v4'
}
compile 'org.apache:pdfbox-android:1.8.9.0'
compile 'com.android.support:appcompat-v7:24.2.1'
compile 'com.android.support:design:24.2.1'
}
在这个错误之前我得到了这个:java.lang.NoSuchMethodError: No static method setOnApplyWindowInsetsListener
在此之前我还有一个类似的错误。两者都通过更新我的支持库得到修复。现在我得到了最新的 (24.2.1) 版本的 appcompatv7 和设计库,所以我不知道我能做什么了。
最佳答案
我能够解决这个问题。在我的/libs 文件夹下,我有一个用 gradle 编译的旧 android-support-v13.jar。我的应用程序尝试使用此 .jar 的 ContextCompat 类,但该类没有静态 getDrawable(Context) 方法。删除这个 .jar 解决了我的问题。
关于android - java.lang.NoSuchMethodError : No static method getDrawable(Landroid/content/Context;I)Landroid/graphics/drawable/Drawable; 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39617770/
谁能告诉我使用 getDrawable() 的正确方法,我记得上次我使用它时只有一个参数就好了,但现在我得到了这个方法已弃用的错误,有人吗?波纹管是我正在尝试使用的 fragment private
我对这两个 API 有点困惑。 ResourcesCompat.getDrawable(Resources res, int id, Resources.Theme theme) Return a d
只是好奇——表面上看起来更尴尬,更不容易被发现,但有充分的理由吗? 最佳答案 我认为它是有意混淆了一点,因为大多数时候你不应该直接摆弄可视化树,符合“框架设计指南”“常用类应该遵循基本场景”的理念。
当我想输入数据但我没有在我的代码中使用任何可绘制对象时,我发现了这个错误。而我只是使用一个简单的 EditText 来读取数据。我在这个论坛中提到了许多其他解决方案,但它没有帮助。 Drawable
我是编程新手。我想构建一个可以保存或下载 QR 码的 QR 码生成器。 这是我的生成器代码: public class GeneratorActivity extends AppCompatA
如果我使用 ldpi 设备,是否可以从 res/drawable-xxxdpi 获取图像?也就是说,R.drawable.sunmsg 为我提供了当前 dpi 的图像链接。我不想将资源从 res/dr
private int ServiceLeft; private int ServiceRight; private int Services; final TextView countTextVie
我想将当前图像设置为 Android 设备中的墙纸,并在缩放后将其设置为列表中的 ImageView 。我在做什么: final WallpaperManager wm = WallpaperMana
我根据另一篇文章在 setOnClickListener 中使用它 here 像这样: start.setOnClickListener(new View.OnClickListener() {
由于发布的代码与有关该问题的代码不同,我已经解决了关于此事的最后一个问题,因此我将使用正确的代码重试... 事情是这样的,我一直在使用适用于 Android 的 GoogleMaps API 运行一些
我正在使用 glide 进行 ImageView ,我想从该 ImageView 中获取位图-- ImageView imageView = (ImageView) findViewById(R.id
我有一个加载三个 png 图像的 Activity 。在 hdpi 上,它们分别是 20kb、148kb 和 190kb。这是我加载它们的代码: Drawable bronzePlaque = res
我有一个包含以下代码的 fragment : final MyActivity activity = (MyActivity )getActivity(); 然后稍后: Drawable d = (D
我需要将 edittext 中的字符串转换为位图,但我没有得到字符串,而是得到了这个(见图) 我的代码如下 Canvas c=new Canvas(); MainActivity.edit
我需要访问 ClipDrawable设置剪辑电平。这是可绘制对象: @drawable/left_arrow: @drawable/rotated_square:
我一直在使用 GoogleMaps API 并偶然发现了这个错误,我正在尝试使用 CustomItemizedOverlay 在我的 map 上设置标记...当我尝试从我的项目资源访问我的其中一张图像
所以我今天刚刚发布了一个新的测试版,没有对这段代码进行任何更改。奇怪的是,我在 Crashlytics 上报告了一个以前从未见过的新崩溃。它只发生在来自两个不同制造商的 Android 6 和 7 的
在 MainActivity 中调用 getDrawable() 时遇到问题,我已经完成了 activity_main.xml,但它显示此警告“类型资源中的方法 getDrawable(int) 已弃
我被这个看似简单的问题困住了。我做错了什么? ImageView mImageView; @Override protected void onCreate(Bundle savedI
我在我的项目中使用过这样的 context.getDrawable(): Drawable greenProgressbar = context.getDrawable(R.drawable.cust
我是一名优秀的程序员,十分优秀!