Giter VIP home page Giter VIP logo

fragmentrigger's Introduction

FragmentRigger

R i g g e r

💥A powerful library to manage Fragments. 一个强大的Fragment管理框架。(中文版入口

Platform Download SDK Build AsPectJ JingYeoh

This might is the library that at the least cost of use to manage fragments.
No need to extend any class!!! No need to extend any class!!! No need to extend any class!!! the most important thing must be said for three times!!!
You can use this FragmentRigger with one line annotation.
Principle: define the pointcuts for Fragment/Activity lifecycle methods and bind to the proxy class to execute.

Demo

This library support usual fragment using scenes,if you found the scene that this library does not supported,you can post Issues or Email me

Stack manager Show Lazy loading Replace

Goal

  • Make Fragment use easier.
  • At the least cost of use to manage fragments.

Wiki

Getting Started

Information

Feature

  • Powerful api
  • Enough English notes
  • Strictest exceptions
  • Resolve usual exceptions and bugs in fragments
  • Never lost any fragment transaction commit
  • Extend the android native fragment methods,add some usual methods such as onBackPressed()
  • Print tree for the fragment stack
  • Fragment lazy load
  • Fragment transition animations
  • Option to configure fragment tag
  • Add onBackPressed method support for the fragment that is not added into stack
  • Swipe edge to exit Fragment/Activity
  • Option to configure fragment launch mode
  • Fragment shared elements transition animations
  • Support DialogFragment

Problem solved

  • Fragment view overlapping
  • Fragment Multi-level showing
  • Fragment stack manager
  • Fragment transaction commit failed
  • Commit the transaction when the host activity is not resumed
  • Multiple commits are interconnected but the fragment transaction commit does not happen immediately
  • A series of exceptions when memory restarting
  • Data saved and restored when the screen is flipped
  • Can not perform this action after onSaveInstanceState
  • Lazy loading in ViewPager and other scenarios
  • The animation does not perform in different scenarios

Usage example

This library provides powerful api.

1、Add support for your classes

Add @Puppet annotation for your Activity/Fragment that need to use this library.

//MainActivity.java
@Puppet(containerViewId = R.id.atyContent)//containerViewId is the fragment to be placed in.
public class MainActivity extends AppCompatActivity
//TestFragment.java
@Puppet
public class TestFragment extends Fragment

2、Fragment usage

After add @Puppet annotation, use the proxy class Rigger to manage fragments.

@Puppet(containerViewId = R.id.atyContent)
public class MainActivity extends AppCompatActivity{
  ...
  //add and show a fragment and add it to the stack,this fragment is placed in the container view.
   Rigger.getRigger(this).startFragment(TestFragment.newInstance());
}

3、Activity/Fragment swipe back to exit

Add Swiper annotation for your Activity/Fragment.

@Swiper
@Puppet
public class MainActivity extends AppCompatActivity{
    // swiper can only used with puppet.
}
@Swiper
@Puppet
public class TestFragment extends Fragment{
    // swiper can only used with puppet.
}

License

This library is available under the MIT license. See the LICENSE file for more info.

fragmentrigger's People

Contributors

anotherjack avatar henryhaoson avatar jingyeoh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fragmentrigger's Issues

编译报错 transformClassesWithDexBuilderForDebug

Error:Execution failed for task ':app:transformClassesWithDexBuilderForDebug'.

Unexpected scopes found in folder 'D:\androidProjict\FragmentRigger-master\app\build\intermediates\transforms\AspectTransform\debug'. Required: PROJECT, SUB_PROJECTS, EXTERNAL_LIBRARIES. Found: EXTERNAL_LIBRARIES, PROJECT, PROJECT_LOCAL_DEPS, SUB_PROJECTS, SUB_PROJECTS_LOCAL_DEPS

添加了 multiDexEnabled true ,还是不行
defaultConfig {
..........
multiDexEnabled true
}

Error compile/Implementation.

Hi,
After installing the library dependency, there comes a error saying

Configuration 'compile' is obsolete and has been replaced with 'implementation' and 'api'.

even though there is no compile keyword in my build file.

无法使用的问题

按照文档中一步一步进行配置,注解都添加了,最后在运行中显示Caused by: com.jkb.fragment.rigger.exception.RiggerException: UnKnown error com.miyou.machine.view.activity.MainActivity@743498 is not added into rigger. please check your config or contact author.
检测了几遍,还是找不错问题

退出后第二次启动会报这个错

UnKnown error HotFragment{10fb5ba} is not added into rigger. please check your config or contact author.
at com.jkb.fragment.rigger.rigger.Rigger.getRigger(Rigger.java:94)
at com.jkb.fragment.rigger.rigger._Rigger.addFragment(_Rigger.java:272)

示例Demo开启混淆后, java.lang.NoSuchMethodException

build.gradle文件中开启混淆

buildTypes {
        ...
        debug {
            minifyEnabled true
            //是否清理无用资源
            shrinkResources false
            //是否启用zipAlign压缩
            zipAlignEnabled false
            signingConfig signingConfigs.myConfig
            versionNameSuffix rootProject.ext.app.versionNameSuffix
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

        }
    }

proguard-rules.pro 配置混淆文件

-ignorewarnings

运行示例DEMO

12-25 17:48:11.759 32639-32639/? E/AndroidRuntime: FATAL EXCEPTION: main
                                                   Process: com.yj.app, PID: 32639
                                                   java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.yj.app/com.yj.app.MainActivity}: java.lang.NoSuchMethodException: getInstance []
                                                       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2569)
                                                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2755)
                                                       at android.app.ActivityThread.access$1000(ActivityThread.java:192)
                                                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1600)
                                                       at android.os.Handler.dispatchMessage(Handler.java:111)
                                                       at android.os.Looper.loop(Looper.java:224)
                                                       at android.app.ActivityThread.main(ActivityThread.java:5929)
                                                       at java.lang.reflect.Method.invoke(Native Method)
                                                       at java.lang.reflect.Method.invoke(Method.java:372)
                                                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1113)
                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:879)
                                                    Caused by: java.lang.NoSuchMethodException: getInstance []
                                                       at java.lang.Class.getMethod(Class.java:664)
                                                       at java.lang.Class.getDeclaredMethod(Class.java:626)
                                                       at com.a.a.a.b.a.b(Unknown Source)
                                                       at com.a.a.a.b.a.a(Unknown Source)
                                                       at com.a.a.a.b.a.a(Unknown Source)
                                                       at android.support.v4.app.k.a(Unknown Source)
                                                       at android.support.v4.app.k.<init>(Unknown Source)
                                                       at android.support.v7.app.d.<init>(Unknown Source)
                                                       at com.yj.app.a.a.<init>(Unknown Source)
                                                       at com.yj.app.MainActivity.<init>(Unknown Source)
                                                       at java.lang.reflect.Constructor.newInstance(Native Method)
                                                       at java.lang.Class.newInstance(Class.java:1606)
                                                       at android.app.Instrumentation.newActivity(Instrumentation.java:1071)
                                                       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2546)
                                                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2755) 
                                                       at android.app.ActivityThread.access$1000(ActivityThread.java:192) 
                                                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1600) 
                                                       at android.os.Handler.dispatchMessage(Handler.java:111) 
                                                       at android.os.Looper.loop(Looper.java:224) 
                                                       at android.app.ActivityThread.main(ActivityThread.java:5929) 
                                                       at java.lang.reflect.Method.invoke(Native Method) 
                                                       at java.lang.reflect.Method.invoke(Method.java:372) 
                                                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1113) 
                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:879) 

无法编译通过 Error:Execution failed for task ':app:transformClassesWithAspectTransformForDebugTest'. > ABORT

Error:Execution failed for task ':app:transformClassesWithAspectTransformForDebugTest'. > ABORT

似乎跟环信SDK冲突?
ABORT
org.aspectj.weaver.BCException: Whilst processing type 'Lcom/hyphenate/chat/EMCallManager$EMCallType;' - cannot cast the outer type to a reference type. Signature=Lcom/hyphenate/chat/EMCallManager; toString()=com.hyphenate.chat.EMCallManager class=EMCallManager
when processing type mungers
when weaving
when batch building BuildConfig[null] #Files=0 AopXmls=#0

at org.aspectj.weaver.AbstractReferenceTypeDelegate.getFormalTypeParametersFromOuterClass(AbstractReferenceTypeDelegate.java:113)
at org.aspectj.weaver.bcel.BcelObjectType.ensureGenericSignatureUnpacked(BcelObjectType.java:775)
at org.aspectj.weaver.bcel.BcelObjectType.getSuperclass(BcelObjectType.java:231)
at org.aspectj.weaver.ReferenceType.getSuperclass(ReferenceType.java:987)
at org.aspectj.weaver.bcel.BcelWeaver.weaveParentsFor(BcelWeaver.java:1304)
at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:1123)
at org.aspectj.ajdt.internal.compiler.AjPipeliningCompilerAdapter.weaveQueuedEntries(AjPipeliningCompilerAdapter.java:514)
at org.aspectj.ajdt.internal.compiler.AjPipeliningCompilerAdapter.afterCompiling(AjPipeliningCompilerAdapter.java:375)
at org.aspectj.ajdt.internal.compiler.CompilerAdapter.ajc$afterReturning$org_aspectj_ajdt_internal_compiler_CompilerAdapter$2$f9cc9ca0(CompilerAdapter.aj:78)
at org.aspectj.org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:471)
at org.aspectj.ajdt.internal.core.builder.AjBuildManager.performCompilation(AjBuildManager.java:1036)
at org.aspectj.ajdt.internal.core.builder.AjBuildManager.performBuild(AjBuildManager.java:272)
at org.aspectj.ajdt.internal.core.builder.AjBuildManager.batchBuild(AjBuildManager.java:185)
at org.aspectj.ajdt.ajc.AjdtCommand.doCommand(AjdtCommand.java:112)
at org.aspectj.ajdt.ajc.AjdtCommand.runCommand(AjdtCommand.java:60)

如何在library module中使用 的问题。

@puppet(containerViewId = R2.id.zhny_HomeFramLayout,bondContainerView = true)

Caused by: java.lang.IllegalArgumentException: No view found for id 0x7f0c00bd (unknown) for fragment WaterFragment{2e0d4985 #0 id=0x7f0c00bd WaterFragment__91a1d367}

懒加载无效

在fragment中配置这两个 @lazyload @puppet
public void onLazyLoadViewCreated(Bundle savedInstanceState) {

}
但是在懒加载方法没执行。

UnKnown error com.yj.app.MainActivity@dd938a9is not a puppet object

Process: com.yj.app, PID: 18142
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.yj.app/com.yj.app.MainActivity}: com.jkb.fragment.rigger.exception.RiggerException: UnKnown error com.yj.app.MainActivity@dd938a9is not a puppet object
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2796)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2867)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1570)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:156)
at android.app.ActivityThread.main(ActivityThread.java:6595)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:942)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:832)
Caused by: com.jkb.fragment.rigger.exception.RiggerException: UnKnown error com.yj.app.MainActivity@dd938a9is not a puppet object
at com.jkb.fragment.rigger.rigger.Rigger.getRigger(Rigger.java:94)
at com.yj.app.MainActivity.init(MainActivity.java:14)
at com.yj.app.base.BaseActivity.onCreate(BaseActivity.java:26)
at android.app.Activity.performCreate(Activity.java:6910)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2749)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2867) 
at android.app.ActivityThread.-wrap12(ActivityThread.java) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1570) 
at android.os.Handler.dispatchMessage(Handler.java:105) 
at android.os.Looper.loop(Looper.java:156) 
at android.app.ActivityThread.main(ActivityThread.java:6595) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:942) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:832) 

能用了吗?

为什么一直提示: Failed to resolve: com.justkiddingbaby:fragment-rigger:1.0.0。

Compile obsolete

Configuration 'compile' is obsolete and has been replaced with 'implementation' and 'api'.
It will be removed at the end of 2018. For more information see: http://d.android.com/r/tools/update-dependency-configurations.html

上面这个错误,是我在引入 FragmentRigger 这个库报的错误,我找了一下,没没有使用 compile,而是统一用的 implementation。我没有引入 FragmentRigger 这个库的时候,没有报过这个错误。有点诡异,翻看了 Issues 都没能解决。下面是我的 build.gradle(project) 跟 build.gradle(app)的配置情况。

我新建了一个新项目,直接在 build.gradle(app)下引入,以及在其他的配置,同样也是会报这个错误。

个人开发配置

Android Studio 3.2.1
macOS 10.14.1

build.gradle(project)

// Top-level build file where you can add configuration options common to all sub-projects/modules.
apply from: "config.gradle"

buildscript {
    
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.2.0'
        classpath 'com.jakewharton:butterknife-gradle-plugin:8.4.0'
        classpath 'com.hujiang.aspectjx:gradle-android-plugin-aspectjx:2.0.1'
        classpath 'org.aspectj:aspectjtools:1.8.13'
        

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        maven { url "https://jitpack.io" }
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

build.gradle(Module:app)

apply plugin: 'com.android.application'
apply plugin: 'android-aspectjx'


android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.osapling.breath"
        minSdkVersion 21
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    ...
    implementation rootProject.ext.dependencies["fragmentRigger"]
}

show场景下的onBackPressed()未支持

添加一个fragment 按返回键 close了,但是再次添加Fragment后,再按返回键 ,activity就退出了.你们遇到过吗? 这里还有个问题 就是我若是加了多层的fragment,按一次fragment会吧所有的fragment全部移除,怎么做到一层层移除?

android studio 3.0 运行报 null

12-29 12:40:49.234 21724-21724/com.yj.app E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.yj.app, PID: 21724
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.yj.app/com.yj.app.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.jkb.fragment.rigger.rigger.RiggerTransaction.setCustomAnimations(int, int)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2560)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2640)
at android.app.ActivityThread.access$800(ActivityThread.java:182)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1493)
at android.os.Handler.dispatchMessage(Handler.java:111)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5682)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:963)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:758)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.jkb.fragment.rigger.rigger.RiggerTransaction.setCustomAnimations(int, int)' on a null object reference
at com.jkb.fragment.rigger.rigger._Rigger.addFragmentWithAnim(_Rigger.java:417)
at com.jkb.fragment.rigger.rigger._Rigger.startFragment(_Rigger.java:243)
at com.yj.app.MainActivity.init(MainActivity.java:14)
at com.yj.app.base.BaseActivity.onCreate_aroundBody2(BaseActivity.java:26)
at com.yj.app.base.BaseActivity$AjcClosure3.run(BaseActivity.java:1)
at org.aspectj.runtime.reflect.JoinPointImpl.proceed(JoinPointImpl.java:149)
at com.jkb.fragment.rigger.aop.AspectActivityPoint.onCreateProcess(AspectActivityPoint.java:76)
at com.yj.app.base.BaseActivity.onCreate(BaseActivity.java:24)
at android.app.Activity.performCreate(Activity.java:6161)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1112)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2507)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2640) 
at android.app.ActivityThread.access$800(ActivityThread.java:182) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1493) 
at android.os.Handler.dispatchMessage(Handler.java:111) 
at android.os.Looper.loop(Looper.java:194) 
at android.app.ActivityThread.main(ActivityThread.java:5682) 
at java.lang.reflect.Method.invoke(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:372) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:963) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:758) 
12-29 12:45:49.661 21724-21724/com.yj.app I/Process: Sending signal. PID: 21724 SIG: 9

studio3.0兼容性的问题

studio3.0引入后编译通不过,百度了好久,也没找到解决方案,我看作者用的版本貌似不是3.0
错误信息:Execution failed for task ':Company:transformClassesWithDexBuilderForDebug'.

Unexpected scopes found in folder 'F:\workplace\SpeedLogistics\Company\build\intermediates\transforms\AspectTransform\debug'. Required: PROJECT, SUB_PROJECTS, EXTERNAL_LIBRARIES. Found: EXTERNAL_LIBRARIES, PROJECT, PROJECT_LOCAL_DEPS, SUB_PROJECTS, SUB_PROJECTS_LOCAL_DEPS

Fragment is not added into rigger

RuntimeException: Unable to start activity ComponentInfo{XXXActivity}: com.jkb.fragment.rigger.exception.RiggerException: UnKnown error XXXActivity@3c64c01 is not added into rigger. please check your config or contact author.

compileSdkVersion 26
support-v4:26.1.0

Non Puppet fragments should be ignored

I have a custom FrameLayout view which serves as a container for a Google map fragment. The SupportMapFragment gets added to the FrameLayout which in turn is used all over my implementation.

The problem arises when BackClick is triggered on an Activity or Fragment containing my custom FrameLayout. Rigger tries to invoke the back callbacks on non stacked fragments, which includes the SupportMapFragment of my custom view. This fragment is without a tag, so it isn't found in the mRiggerTransaction object and thus, a NotExistException is thrown.

The problem lies in _Rigger.java, on the dispatchBackPressed function. If a tag in the fragmentsWithoutStack array is null, it should be ignored. Or going back a step, when the fragmentsWithoutStack array is populated, in the getFragmentsWithoutStack of the FragmentStackManager.java it should not include tags that are null or tags that don't belong in Puppet fragments.

com.jkb.fragment.rigger.b.c: UnKnown error MainActivity@41919b78 is not added into rigger. please check your config or contact author.

想在Android module中使用,出现以下错误,请帮忙看下什么情况。
E: FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{MainActivity}: com.jkb.fragment.rigger.b.c: UnKnown error MainActivity@41919b78 is not added into rigger. please check your config or contact author.
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2187)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2236)
at android.app.ActivityThread.access$800(ActivityThread.java:138)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1199)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5095)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)
at dalvik.system.NativeStart.main(Native Method)
Caused by: com.jkb.fragment.rigger.b.c: UnKnown error MainActivity@41919b78 is not added into rigger. please check your config or contact author.
at com.jkb.fragment.rigger.rigger.Rigger.getRigger(Unknown Source)
at MainActivity.onCreate(Unknown Source)
at android.app.Activity.performCreate(Activity.java:5231)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2151)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2236) 
at android.app.ActivityThread.access$800(ActivityThread.java:138) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1199) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:136) 
at android.app.ActivityThread.main(ActivityThread.java:5095) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:515) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602) 
at dalvik.system.NativeStart.main(Native Method) 

报错了 Fragment already added:

java.lang.IllegalStateException: Fragment already added: MainFragmentHome1{b6f22cc #0 id=0x7f080084 MainFragmentHome1__b43a1cbe}
at android.support.v4.app.FragmentManagerImpl.addFragment(FragmentManager.java:1916)
at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:765)
at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2625)
at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2411)
at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2366)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2273)
at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:733)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
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)

项目可以支持 As 3.0 gradle 4.1的吧?

1)app.built.gradle 移除

apply plugin: 'me.tatarka.retrolambda'
jackOptions {
            enabled false
        }

2)buile.gradle 修改

apply from: "config.gradle"

buildscript {
    repositories {
        jcenter()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.1'

        classpath 'com.novoda:bintray-release:0.5.0'
        classpath 'org.aspectj:aspectjtools:1.8.13'
        classpath 'com.hujiang.aspectjx:gradle-android-plugin-aspectjx:1.1.1'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
        maven { url 'https://jitpack.io' }
        google()
    }
    tasks.withType(Javadoc) {
        options.addStringOption('Xdoclint:none', '-quiet')
        options.addStringOption('encoding', 'UTF-8')
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

Caused by: java.lang.IllegalStateException: Can't change container ID of fragment DeviceListFragment{add691 id=0x7f090046 DeviceListFragment__dd4118ec}: was 2131296326 now 2131296455

我在代码中的使用:
@OverRide
protected void init(Bundle savedInstanceState) {
DeviceListFragment devices = DeviceListFragment.newInstance();
Rigger.getRigger(this).addFragment(R.id.container_devices, devices);
Rigger.getRigger(this).showFragment(Rigger.getRigger(devices).getFragmentTAG());

    Rigger.getRigger(this.getActivity()).addFragment(R.id.main, devices);

}
我是想把这个fragment 也放到MainActivity的Rigger里面。
最底下那行报错,报错见标题,是我的用法不对吗?

Demo MainAvtivity 返回键退出错误

Caused by: com.jkb.fragment.rigger.exception.RiggerException: UnKnown error com.yj.app.MainActivity@ef8c36e is not added into rigger. please check your config or contact author.
at com.jkb.fragment.rigger.rigger.Rigger.getRigger(Rigger.java:94)
at com.jkb.fragment.rigger.rigger._FragmentRigger.close(_FragmentRigger.java:298)
at com.jkb.fragment.rigger.rigger._Rigger.onBackPressed(_Rigger.java:220)
at com.jkb.fragment.rigger.rigger._Rigger.onRiggerBackPressed(_Rigger.java:201)
at com.jkb.fragment.rigger.rigger._Rigger.onBackPressed(_Rigger.java:228)
at com.jkb.fragment.rigger.rigger._Rigger.onRiggerBackPressed(_Rigger.java:201)
at com.jkb.fragment.rigger.rigger.Rigger.onBackPressed(Rigger.java:254)
at java.lang.reflect.Method.invoke(Native Method) 

使用glide4.6.1点击返回键时异常

Caused by: com.jkb.fragment.rigger.c.c: Can not find Puppet annotation.please add Puppet annotation for the class com.bumptech.glide.manager.SupportRequestManagerFragment
        at com.jkb.fragment.rigger.rigger.Rigger.getRigger(Unknown Source:57)
        at com.jkb.fragment.rigger.rigger._Rigger.dispatchBackPressed(Unknown Source:45)
        at com.jkb.fragment.rigger.rigger.Rigger.onBackPressed(Unknown Source:9)
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.jkb.fragment.rigger.b.a.h(Unknown Source:26)
 ```

UnKnown error com.yj.app.MainActivity@1242d02is not a puppet object

不知道作者是否遇到过下面的问题:com.jkb.fragment.rigger.exception.RiggerException: UnKnown error com.yj.app.MainActivity@1242d02is not a puppet object

环境是:android studio 3.0 com.android.tools.build:gradle:3.0.1
我没有修改您的任何代码。只是运行了一下您的工程, app 安装完成后,一打开,就出现上述错误

java.lang.NoSuchMethodError: No static method aspectOf()

                                                                      java.lang.NoSuchMethodError: No static method aspectOf()Lcom/jkb/fragment/rigger/aop/ActivityInjection; in class Lcom/jkb/fragment/rigger/aop/ActivityInjection; or its super classes (declaration of 'com.jkb.fragment.rigger.aop.ActivityInjection' appears in /data/app/com.helife.android.debug-1/base.apk:classes10.dex)

好不容易解决了插件编译的错误,现在加入功能时,就只是加了一个@puppet ,再次编译就出错了。。。

Understanding onBackPressed.

Hi,thanks for the library.
I'm having problem with understanding onRiggerBackPressed and onInterruptBackPressed.
How can i let the activity's onBackPressed to execute when using onRiggerBackPressed ?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.