这是这个问题的后续问题:
我还将支持库更新为23.2并开始收到错误:
$form = $this->createForm(\AppBundle\Form\LoginType::class, $defaultData);
这个问题解决了Android Studio和Gradle的问题。在没有Gradle的情况下使用Eclipse时如何解决这个问题?
答案 0 :(得分:9)
您可以切换回以前版本的appcompat库(快速修复):
compile 'com.android.support:appcompat-v7:23.1.1'
或者保留当前的库版本,并按照google in version 23.2.0 release note的说明对构建gradle文件进行适当的更新。
//for Gradle Plugin 2.0+
android {
defaultConfig {
vectorDrawables.useSupportLibrary = true
}
}
如果您使用的是Gradle 1.5,则可以使用
defaultConfig {
generatedDensities = []
}
// This is handled for you by the 2.0+ Gradle Plugin
aaptOptions {
additionalParameters "--no-version-vectors"
}
不要忘记至少将gradle构建工具更新到1.5.0版,或者不能使用像generatedDensities这样的新参数:
classpath 'com.android.tools.build:gradle:1.5.0'
有关here
的更多信息答案 1 :(得分:4)
此问题的先前答案为使用Gradle的开发人员提供了解决方案,但我不使用Gradle,因此我想总结一下他的答案,这些答案帮助了几个人以及我最终做了什么。我接受了我自己的答案,而不是他,就像我说的那样,我没有使用Gradle,所以我没有使用他写的东西。
我最后做了几件工作。可能的解决方案是:
首先是Gradle用户:
1)将支持库还原为旧版本,因为这个版本有错误。
2)使用compile' com.android.support:appcompat-v7:23.2.1'因为那里的bug被修复了。
3)Gradle Plugin 2.0:
android {
defaultConfig {
vectorDrawables.useSupportLibrary = true
}
}
或者您可以使用成绩构建工具1.5.0(classpath 'com.android.tools.build:gradle:1.5.0'
)
defaultConfig {
generatedDensities = []
}
//无需使用Gradle 2.0
aaptOptions {
additionalParameters "--no-version-vectors"
}
这是非Gradle用户的一部分:
1)打开SDK管理器。
2)同时卸载" Android Wear X" (其中X是ARM或Intel)来自API 22和23。
3)然后,我仍然在AppCompat库的一种样式中出现编译错误。我只是简单地评论了它们(如果使用非常特殊的样式,我将冒这个特定设备无法工作的风险)。
之后我清理了项目,它刚刚开始工作。
答案 2 :(得分:3)
仅限新用户,此问题已修复:
compile 'com.android.support:appcompat-v7:23.2.1'
答案 3 :(得分:3)
在我将Gradle依赖项更新到最新版本但忘记更新项目的buildToolsVersion后,我在Android Studio 2.2中遇到了同样的错误。
我改变了:
compile 'com.android.support:appcompat-v7:22.2.1'
为:
compile 'com.android.support:appcompat-v7:24.2.1'
虽然buildToolsVersion保持在" 22.0.1"像这样:
buildToolsVersion "22.0.1"
所以我所做的就是将buildToolsVersion更新为24
,如下所示:
buildToolsVersion "24"
因为之前已经使用SDK Manager下载了它。因此,请从SDK Manager中检查最新的buildToolsVersion
,看它是否与依赖项版本匹配。
希望这有助于某人。
答案 4 :(得分:3)
在尝试已经提供的答案后,该应用程序在某些设备(主要是三星)上崩溃。因此,我尝试加载像这样的矢量绘图
<a href="https://www.amazon.com/Stanley-Screwdriver/dp/B0014KMDZ0/ref=as_li_ss_tl?ie=UTF8&qid=1482529941&sr=8-1&keywords=Pocket+Screwdriver&linkCode=ll1&tag=rasrf1-20&linkId=a7cefc1156af5144695cf921ad1241c1"><img class="aligncenter wp-image-312" src="http://mysiteexample.com/wp-content/uploads/2016/11/review-1024x768.jpg" alt="Stanley Review" width="256" height="192" /></a>
此Drawable drawable = AppCompatDrawableManager.get().getDrawable(context, R.drawable.resource_id);
内部尝试使用各种方法获取drawable:
AppCompatDrawableManager
因此它适用于所有Android版本和所有设备(希望如此)。
注意:不要尝试使用Picasso(2.5.2)或Glide(3.7.0)的方法来加载矢量绘图。因为他们在内部使用弃用的Drawable getDrawable(@NonNull Context context, @DrawableRes int resId,
boolean failIfNotKnown) {
checkVectorDrawableSetup(context);
Drawable drawable = loadDrawableFromDelegates(context, resId);
if (drawable == null) {
drawable = createDrawableIfNeeded(context, resId);
}
if (drawable == null) {
drawable = ContextCompat.getDrawable(context, resId);
}
if (drawable != null) {
// Tint it if needed
drawable = tintDrawable(context, resId, failIfNotKnown, drawable);
}
if (drawable != null) {
// See if we need to 'fix' the drawable
DrawableUtils.fixDrawable(drawable);
}
return drawable;
}
方法。这将在某些设备上产生getDrawable(@DrawableRes int id)
。
答案 5 :(得分:0)
对于像我这样仍然没有使用Gradle的Eclipse的人,我在Android Lollipop设备(API&lt; 21)上运行Android支持库r23.2.0时出现此错误。
此问题已在r23.2.1中修复,我已成功在API级别16上运行我的项目。
此版本的Eclipse库不再通过SDK Manager提供,但您可以从此link手动下载。
答案 6 :(得分:0)
如果问题出现在发布应用版本中。这解决了我的问题
发布。我想因为如果你把shrinkResources true
创建的可绘制文件夹没有可绘制的文件。
{
..
minifyEnabled true
shrinkResources false
}