我试图运行这个库的示例:
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 依赖项运行示例吗?
最佳答案
该项目正在尝试访问 ImageView
在 NavigationView
的标题中在 fragment_menu.xml
以与较新版本的支持库不兼容的方式。您可以在 this post 中找到详细信息.ImageView
用作 target
在 Picasso
调用并自 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/