我会说,我已经在stackoverflow上看到了这个问题的一些答案,但只是提供了一个快速的解决方案'解。如果可能的话,我想了解为什么会发生这种情况(一些详细说明的答案)。
现在回答这个问题:我刚刚使用Android Studio 2.2重新启动了android开发。我有一个ios应用程序,我想移植到android(意思是,为Android重新创建它)。我从Android Studio开始使用基本模板,使用2个PNG文件添加了Constraint Layout和2个ImageViews,我已将这些文件复制到DRAWABLE文件夹中。
在不进行任何更改或任何更改的情况下,当我尝试构建时,我收到此错误:
错误:(11)找不到属性' srcCompat'在包裹' x.y.z'。两个图像都会发生这种情况这是布局文件:
<?php
abstract class test{
// Force Extending class to define this method
abstract protected function getValue();
abstract protected function prefixValue($prefix);
// Common method
public function printOut() {
print $this->getValue() . "\n";
}
}
class testabs extends test{
protected function getValue()
{
}
/**
* this method can be called from other methods with this class
* or sub-classes, but not called directly by code outside of this class
**/
protected function prefixValue($f)
{
}
}
$obj = new testabs();
// this method cannot be called here because its visibility is protected
$obj->prefixValues();// Fatal Error
?>
现在,我想了解一些事情,以便对我的问题有一个正确的答案:
我在SO上找到的其他一些答案建议更改默认值:
的xmlns:应用=&#34; HTTP://schemas.android.com/apk/res-auto"
为:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/lib/x.y.z"
xmlns:app2="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="x.y.z.MainActivity">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app2:srcCompat="@drawable/pngFile1"
android:id="@+id/imageView"
app2:layout_constraintBottom_toBottomOf="parent"
android:layout_marginEnd="8dp"
app2:layout_constraintRight_toRightOf="parent"
android:layout_marginBottom="8dp"
android:layout_marginRight="8dp" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app2:srcCompat="@drawable/pngFile2"
android:id="@+id/imageView2"
app2:layout_constraintBottom_toTopOf="@+id/imageView"
app2:layout_constraintRight_toRightOf="@+id/imageView"
android:layout_marginBottom="8dp" />
这确实可以从构建中删除错误,但对我来说似乎很奇怪(我的一点一滴的机器人体验)是Android Studio在我添加第二个时创建了另一个类似的行图像:
xmlns:app="http://schemas.android.com/apk/lib/x.y.z"
正如我们所看到的,它将它用于图像,因此错误再次出现。
我记得就像一年前我在Android Studio上开发过应用程序一样,使用几乎相同的方式添加带图像的图像/按钮,这些问题都不存在。
这就是为什么我还想了解为什么会发生这种情况以及如何正确解决问题。
提前致谢!
答案 0 :(得分:1)
所有你需要专注于你正在使用的android studio版本的拳头。您还应该查看minSdkVersion
和targetSdkVersion
。
尝试使用android:src=""
代替app2:srcCompat=
app2:srcCompat= suports older APIs when loading vectorDrawable.
如果你想使用它,那么修改你的build.gradile,如
android {
defaultConfig {
vectorDrawables.useSupportLibrary = true
}
}
有关详细信息,请参阅此link
或者您可以在stackoverflow
参考此答案答案 1 :(得分:0)
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView"
android:layout_alignParentStart="true"
android:layout_alignParentEnd="true"
android:background="@drawable/cooltext201199220690445" />
我只是改变了我的意思,这对我有用 我刚删除了srccompat并将其替换为“background” 我完全删除了“xmlns:app2 =”http://schemas.android.com/apk/res-auto“希望这可以帮助你:”