我有一个很奇怪的问题。我在Ubuntu 15.10上使用Android Studio 2.1。
我尝试从v7支持库实现GridLayout
。我从SDK Manager安装了Android Support Library
和Android Support Repository
,并将gridlayout添加到我的应用build.gradle依赖项中:
compile 'com.android.support:design:23.3.0'
compile 'com.android.support:appcompat-v7:23.3.0'
compile 'com.android.support:gridlayout-v7:23.3.0'
将其添加到我的布局XML文件时,它会正确地自动填充,就好像它应该像它应该导入一样。
<android.support.v7.widget.GridLayout xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:columnCount="4"
app:rowCount="4"
android:id="@+id/keypadButtons"
app:alignmentMode="alignBounds">
...
但是当我去构建项目以查看它在设备上的样子时,它出于某种原因失败了。
当我想在Design视图中查看它时,我发现在事件日志中有一个解析错误,其中指出:
java.lang.RuntimeException: java.lang.ClassNotFoundException: android.support.v7.widget.GridLayout
修改 当在Design视图中查看GridLayout时,它甚至可以按原样呈现它(在我的例子中是4列和4行)。但是给出了找不到GridLayout类的解析错误,并且无法显示其他元素的Component Tree。
添加图书馆时我错过了一些步骤吗?我在Windows上使用了其他v4和v7支持库,没有任何问题。可能是Linux权限问题吗?
答案 0 :(得分:0)
我已经尝试过您的代码并且工作正常。
在我的gradle文件中,我有:
android {
compileSdkVersion 23
buildToolsVersion "23.0.3"
...
defaultConfig {
minSdkVersion 19
targetSdkVersion 23
...
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.3.0'
compile 'com.android.support:design:23.3.0'
compile 'com.android.support:gridlayout-v7:23.3.0'
答案 1 :(得分:0)
构建问题的解决方案与在Build -> Clean Project
下执行项目清理一样简单(并且有些尴尬)。这解决了我关于应用程序无法构建的问题。
现在我还遇到了在Design视图中找不到的GridLayout类。我找到的解决方案是使File -> Invalidate Caches / Restart
下的缓存无效(注意:这将清除Android Studio中的本地历史记录)。重启后,找到了正确的GridLayout类。
答案 2 :(得分:0)
如果上述问题仍然存在,您可以将RecyclerView
与GridLayoutManager
一起使用。