java - FlowingDrawer 示例不运行

标签 java android gradle build navigation-drawer

我试图运行这个库的示例:
https://github.com/mxn21/FlowingDrawer

它适用于这个过时的 build.gradle :

apply plugin: 'com.android.application'

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"

    defaultConfig {
        applicationId "com.mt.stackoverflow"
        minSdkVersion 9
        targetSdkVersion 22
        versionCode 120
        versionName "1.2.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.2.0'
    compile 'com.android.support:recyclerview-v7:22.+'
    compile 'com.android.support:design:22.2.1'
    compile 'com.squareup.picasso:picasso:2.5.0'
    compile 'com.android.support:cardview-v7:22.+'
    compile 'com.nineoldandroids:library:2.4.0'
    compile 'com.mxn.soul:flowingdrawer-core:1.2.2'
}

但是这个更新的 build.gradle 失败了
apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"

    defaultConfig {
        applicationId "com.mt.stackoverflow"
        minSdkVersion 9
        targetSdkVersion 23
        versionCode 120
        versionName "1.2.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:23.3.0'
    compile 'com.android.support:recyclerview-v7:23.3.0'
    compile 'com.android.support:design:23.3.0'
    compile 'com.squareup.picasso:picasso:2.5.0'
    compile 'com.android.support:cardview-v7:23.3.0'
    compile 'com.nineoldandroids:library:2.4.0'
    compile 'com.mxn.soul:flowingdrawer-core:1.2.2'
}

FATAL EXCEPTION: main Process: com.mt.stackoverflow, PID: 31453 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mt.stackoverflow/com.mt.stackoverflow.MainActivity}: java.lang.IllegalArgumentException: Target must not be null. at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) at android.app.ActivityThread.-wrap11(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5422) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) Caused by: java.lang.IllegalArgumentException: Target must not be null. at com.squareup.picasso.RequestCreator.into(RequestCreator.java:607) at com.squareup.picasso.RequestCreator.into(RequestCreator.java:590) at com.mt.stackoverflow.MyMenuFragment.setupHeader(MyMenuFragment.java:44) at com.mt.stackoverflow.MyMenuFragment.onCreateView(MyMenuFragment.java:31) at android.support.v4.app.Fragment.performCreateView(Fragment.java:1974) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1067) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1252) at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:742) at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1617) at android.support.v4.app.FragmentController.execPendingActions(FragmentController.java:339) at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:602) at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1237) at android.app.Activity.performStart(Activity.java:6268) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2379) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)  at android.app.ActivityThread.-wrap11(ActivityThread.java)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)  at android.os.Handler.dispatchMessage(Handler.java:102)  at android.os.Looper.loop(Looper.java:148)  at android.app.ActivityThread.main(ActivityThread.java:5422)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)



有什么想法可以使用最新的 build.gradle 依赖项运行示例吗?

最佳答案

该项目正在尝试访问 ImageViewNavigationView 的标题中在 fragment_menu.xml以与较新版本的支持库不兼容的方式。您可以在 this post 中找到详细信息.
ImageView用作 targetPicasso调用并自 ImageView无法再找到它为空,这就是 IllegalArgumentException: Target must not be null 的原因错误。

要修复它,请打开类(class) MyMenuFragment并替换 onCreateView(...)具有以下内容:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_menu, container, false);

    View header = ((NavigationView) view.findViewById(R.id.vNavigation)).getHeaderView(0);
    ivMenuUserProfilePhoto = (ImageView) header.findViewById(R.id.ivMenuUserProfilePhoto);

    setupHeader();
    return setupReveal(view) ;
}

基本上找不到ivMenuUserProfilePhoto直接来自 view .您首先需要从 NavigationView 获取标题 View 然后找到ImageView使用标题。

关于java - FlowingDrawer 示例不运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37099883/

相关文章:

java - 将 String 转换为 int--java.lang.NumberFormatException.forInputString

android - JNI 检测到应用程序错误 : can't call void android. graphics.Canvas.drawBitmap

spring - gradle中没有发生分析

gradle - 如何使用 Gradle 构建 BaseGameUtils Android 项目?

java - 如何刷新 CDIView 以反射(reflect)在另一个 CDIView 中所做的更改?

java - Struts 2 session 值未反射(reflect)在负载平衡环境/域 URL 中的 JSP 中

java - 如何从命令提示符或管理控制台停止 Hybris 服务器

android - Android Studio HPROF 引用树元素颜色代表什么?

android - 如果一个 fragment 不再在前景中,调用哪个方法?

android - Android Studio:找不到方法实现()