[英]FlowingDrawer Sample does not run
I tried to run the sample of this library : https://github.com/mxn21/FlowingDrawer 我试图运行这个库的示例: https : //github.com/mxn21/FlowingDrawer
it works fine with this outdated build.gradle : 它适用于这个过时的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'
}
but it fails with this updated build.gradle 但它失败了这个更新的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.
FATAL EXCEPTION:main进程:com.mt.stackoverflow,PID:31453 java.lang.RuntimeException:无法启动活动ComponentInfo {com.mt.stackoverflow / com.mt.stackoverflow.MainActivity}:java.lang.IllegalArgumentException:Target必须不是空的。 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.
在Android.app.A活动中的android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416),android.app.A活动,活动(传统技术) $ H.handleMessage(ActivityThread.java:1344)位于android.app.AtoT.Thread.main的android.os.Handler.dispatchMessage(Handler.java:102)android.os.Looper.loop(Looper.java:148) ActivityThread.java:5422)位于com.android.internal.os的com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726)的java.lang.reflect.Method.invoke(Native Method)。 ZygoteInit.main(ZygoteInit.java:616)引起:java.lang.IllegalArgumentException:Target不能为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 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 )在android.support.v4.app.FragmentManagerImpl.moveToState的android.support.v4.app.Fragment.performCreateView(Fragment.java:1974)的com.mt.stackoverflow.MyMenuFragment.onCreateView(MyMenuFragment.java:31)处( FragmentManager.java:1067)android.support.v4上的android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1252)android.support.v4上的android.support.v4.app.BackStackRecord.run(BackStackRecord.java:742)位于android.support.v4.app.FragmentManager上的.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1617)android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:602) )在Android.app.Activity.performStart的android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1237)上(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)
)在android.app.A活动中的android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2379)上的android.app.A活动时,我发现它位于Android.app.A活动中的android.app.ActivityThread.-wrap11(ActivityThread.java)上的android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)。 ActivityThread $ H.handleMessage(ActivityThread.java:1344)位于android.app.AooT.Thread.main的android.os.Handler.dispatchMessage(Handler.java:102)android.os.Looper.loop(Looper.java:148) (ActivityThread.java:5422)位于com.android.internal.os的com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726)的java.lang.reflect.Method.invoke(Native Method) .ZygoteInit.main(ZygoteInit.java:616)
Any ideas how I can run the sample with the moste recent build.gradle dependencies ? 有关如何使用moste最近的build.gradle依赖项运行示例的任何想法?
The project is trying to access the ImageView
in the header of the NavigationView
in fragment_menu.xml
in a way that is not compatible with the newer version of the support library. 该项目试图以与支持库的较新版本不兼容的方式访问
fragment_menu.xml
中NavigationView
的标题中的ImageView
。 You can find the details in this post . 您可以在这篇文章中找到详细信息。
The ImageView
is used as the target
in a Picasso
call and since the ImageView
can no longer be found it is null and that is the cause of the IllegalArgumentException: Target must not be null
error. ImageView
在Picasso
调用中用作target
,并且由于无法再找到ImageView
因此它是null,这是IllegalArgumentException: Target must not be null
的原因IllegalArgumentException: Target must not be null
错误。
To fix it open the class MyMenuFragment
and replace onCreateView(...)
with the following: 要修复它,请打开
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) ;
}
Basically you can no longer find ivMenuUserProfilePhoto
directly from view
. 基本上你不能再直接从
view
找到ivMenuUserProfilePhoto
。 You first need to get the header view from the NavigationView
and then find the ImageView
using the header. 首先需要从
NavigationView
获取标题视图,然后使用标题查找ImageView
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.