byte-buddy icon indicating copy to clipboard operation
byte-buddy copied to clipboard

The published "Hello World" is not working for me on Android

Open PopeNobody opened this issue 2 years ago • 3 comments

I don't know why it says goodbye ... I say hello!

The code:

   mByteButton.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
        try {
          ParseService.removeObserver(mOnSystemStateChange);
          Class<?> dynamicType = new ByteBuddy()
          .subclass(Object.class)
          .method(ElementMatchers.named("toString"))
          .intercept(FixedValue.value("Hello World!"))
          .make()
          .load(getClass().getClassLoader())
          .getLoaded();
          //assertThat(dynamicType.newInstance().toString(), is("Hello World!"));
          assert dynamicType.newInstance().toString().equals("Hello, World!");
        } catch (IllegalAccessException e) {
          throw new RuntimeException(e);
        } catch (InstantiationException e) {
          throw new RuntimeException(e);
        }
      }
    });

The angry phone:

W/arx.cell411.de: Got a deoptimization request on un-deoptimizable method java.lang.Class java.lang.Class.classForName(java.lang.String, boolean, java.lang.ClassLoader)
W/arx.cell411.de: Got a deoptimization request on un-deoptimizable method java.lang.Class java.lang.Class.classForName(java.lang.String, boolean, java.lang.ClassLoader)
    Got a deoptimization request on un-deoptimizable method java.lang.Class java.lang.Class.classForName(java.lang.String, boolean, java.lang.ClassLoader)
W/arx.cell411.de: Got a deoptimization request on un-deoptimizable method java.lang.Class java.lang.Class.classForName(java.lang.String, boolean, java.lang.ClassLoader)
W/arx.cell411.de: Got a deoptimization request on un-deoptimizable method java.lang.Class java.lang.Class.classForName(java.lang.String, boolean, java.lang.ClassLoader)
W/arx.cell411.de: Got a deoptimization request on un-deoptimizable method java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[])
W/arx.cell411.de: Got a deoptimization request on un-deoptimizable method java.lang.Class java.lang.Class.classForName(java.lang.String, boolean, java.lang.ClassLoader)
W/arx.cell411.de: Got a deoptimization request on un-deoptimizable method java.lang.Class java.lang.Class.classForName(java.lang.String, boolean, java.lang.ClassLoader)
D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.safearx.cell411.dev, PID: 1989
    java.lang.IllegalStateException: Cannot load class class net.bytebuddy.renamed.java.lang.Object$ByteBuddy$cgSk9puD
        at net.bytebuddy.dynamic.loading.ByteArrayClassLoader.load(ByteArrayClassLoader.java:366)
        at net.bytebuddy.dynamic.loading.ClassLoadingStrategy$Default$WrappingDispatcher.load(ClassLoadingStrategy.java:367)
        at net.bytebuddy.dynamic.loading.ClassLoadingStrategy$Default.load(ClassLoadingStrategy.java:148)
        at net.bytebuddy.dynamic.TypeResolutionStrategy$Passive.initialize(TypeResolutionStrategy.java:101)
        at net.bytebuddy.dynamic.DynamicType$Default$Unloaded.load(DynamicType.java:6166)
        at net.bytebuddy.dynamic.DynamicType$Default$Unloaded.load(DynamicType.java:6154)
        at cell411.ui.gallery.WelcomeActivity$1.onClick(WelcomeActivity.java:109)
        at android.view.View.performClick(View.java:8160)
        at android.widget.TextView.performClick(TextView.java:16222)
        at android.view.View.performClickInternal(View.java:8137)
        at android.view.View.access$3700(View.java:888)
        at android.view.View$PerformClick.run(View.java:30236)
        at android.os.Handler.handleCallback(Handler.java:938)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:246)
        at android.app.ActivityThread.main(ActivityThread.java:8625)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130)
     Caused by: java.lang.ClassNotFoundException: net.bytebuddy.renamed.java.lang.Object$ByteBuddy$cgSk9puD
        at java.lang.Class.classForName(Native Method)
        at java.lang.Class.forName(Class.java:454)
        at net.bytebuddy.dynamic.loading.ByteArrayClassLoader.load(ByteArrayClassLoader.java:360)
        at net.bytebuddy.dynamic.loading.ClassLoadingStrategy$Default$WrappingDispatcher.load(ClassLoadingStrategy.java:367) 
        at net.bytebuddy.dynamic.loading.ClassLoadingStrategy$Default.load(ClassLoadingStrategy.java:148) 
        at net.bytebuddy.dynamic.TypeResolutionStrategy$Passive.initialize(TypeResolutionStrategy.java:101) 
        at net.bytebuddy.dynamic.DynamicType$Default$Unloaded.load(DynamicType.java:6166) 
        at net.bytebuddy.dynamic.DynamicType$Default$Unloaded.load(DynamicType.java:6154) 
        at cell411.ui.gallery.WelcomeActivity$1.onClick(WelcomeActivity.java:109) 
        at android.view.View.performClick(View.java:8160) 
        at android.widget.TextView.performClick(TextView.java:16222) 
        at android.view.View.performClickInternal(View.java:8137) 
        at android.view.View.access$3700(View.java:888) 
        at android.view.View$PerformClick.run(View.java:30236) 
        at android.os.Handler.handleCallback(Handler.java:938) 
        at android.os.Handler.dispatchMessage(Handler.java:99) 
        at android.os.Looper.loop(Looper.java:246) 
        at android.app.ActivityThread.main(ActivityThread.java:8625) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130) 
     Caused by: java.lang.UnsupportedOperationException: can't load this type of class file
        at java.lang.ClassLoader.defineClass(ClassLoader.java:591)
        at net.bytebuddy.dynamic.loading.ByteArrayClassLoader.access$300(ByteArrayClassLoader.java:56)
        at net.bytebuddy.dynamic.loading.ByteArrayClassLoader$ClassDefinitionAction.run(ByteArrayClassLoader.java:686)
        at net.bytebuddy.dynamic.loading.ByteArrayClassLoader$ClassDefinitionAction.run(ByteArrayClassLoader.java:638)
        at java.security.AccessController.doPrivileged(AccessController.java:59)
        at net.bytebuddy.dynamic.loading.ByteArrayClassLoader.doPrivileged(Unknown Source:6)
        at net.bytebuddy.dynamic.loading.ByteArrayClassLoader.findClass(ByteArrayClassLoader.java:405)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
        at java.lang.Class.classForName(Native Method) 
        at java.lang.Class.forName(Class.java:454) 
        at net.bytebuddy.dynamic.loading.ByteArrayClassLoader.load(ByteArrayClassLoader.java:360) 
        at net.bytebuddy.dynamic.loading.ClassLoadingStrategy$Default$WrappingDispatcher.load(ClassLoadingStrategy.java:367) 
        at net.bytebuddy.dynamic.loading.ClassLoadingStrategy$Default.load(ClassLoadingStrategy.java:148) 
        at net.bytebuddy.dynamic.TypeResolutionStrategy$Passive.initialize(TypeResolutionStrategy.java:101) 
        at net.bytebuddy.dynamic.DynamicType$Default$Unloaded.load(DynamicType.java:6166) 
        at net.bytebuddy.dynamic.DynamicType$Default$Unloaded.load(DynamicType.java:6154) 
        at cell411.ui.gallery.WelcomeActivity$1.onClick(WelcomeActivity.java:109) 
        at android.view.View.performClick(View.java:8160) 
        at android.widget.TextView.performClick(TextView.java:16222) 
        at android.view.View.performClickInternal(View.java:8137) 
        at android.view.View.access$3700(View.java:888) 
        at android.view.View$PerformClick.run(View.java:30236) 
        at android.os.Handler.handleCallback(Handler.java:938) 
        at android.os.Handler.dispatchMessage(Handler.java:99) 
        at android.os.Looper.loop(Looper.java:246) 
        at android.app.ActivityThread.main(ActivityThread.java:8625) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130) 
I/System.out: E/UncaughtExceptionHandler: uncaught exception in thread Thread[main,5,main]
I/System.out: E/UncaughtExceptionHandler:   throwable: java.lang.IllegalStateException: Cannot load class class net.bytebuddy.renamed.java.lang.Object$ByteBuddy$cgSk9puD
I/System.out: I/ExceptionHandler: java.lang.IllegalStateException: Cannot load class class net.bytebuddy.renamed.java.lang.Object$ByteBuddy$cgSk9puD
I/System.out:     at net.bytebuddy.dynamic.loading.ByteArrayClassLoader.load(ByteArrayClassLoader.java:366)
I/System.out:     at net.bytebuddy.dynamic.loading.ClassLoadingStrategy$Default$WrappingDispatcher.load(ClassLoadingStrategy.java:367)
        at net.bytebuddy.dynamic.loading.ClassLoadingStrategy$Default.load(ClassLoadingStrategy.java:148)
I/System.out:     at net.bytebuddy.dynamic.TypeResolutionStrategy$Passive.initialize(TypeResolutionStrategy.java:101)
I/System.out:     at net.bytebuddy.dynamic.DynamicType$Default$Unloaded.load(DynamicType.java:6166)
I/System.out:     at net.bytebuddy.dynamic.DynamicType$Default$Unloaded.load(DynamicType.java:6154)
I/System.out:     at cell411.ui.gallery.WelcomeActivity$1.onClick(WelcomeActivity.java:109)
I/System.out:     at android.view.View.performClick(View.java:8160)
        at android.widget.TextView.performClick(TextView.java:16222)
I/System.out:     at android.view.View.performClickInternal(View.java:8137)
        at android.view.View.access$3700(View.java:888)
I/System.out:     at android.view.View$PerformClick.run(View.java:30236)
        at android.os.Handler.handleCallback(Handler.java:938)
I/System.out:     at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:246)
        at android.app.ActivityThread.main(ActivityThread.java:8625)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130)
    Caused by: java.lang.ClassNotFoundException: net.bytebuddy.renamed.java.lang.Object$ByteBuddy$cgSk9puD
        at java.lang.Class.classForName(Native Method)
        at java.lang.Class.forName(Class.java:454)
        at net.bytebuddy.dynamic.loading.ByteArrayClassLoader.load(ByteArrayClassLoader.java:360)
    	... 18 more
    Caused by: java.lang.UnsupportedOperationException: can't load this type of class file
        at java.lang.ClassLoader.defineClass(ClassLoader.java:591)
        at net.bytebuddy.dynamic.loading.ByteArrayClassLoader.access$300(ByteArrayClassLoader.java:56)
        at net.bytebuddy.dynamic.loading.ByteArrayClassLoader$ClassDefinitionAction.run(ByteArrayClassLoader.java:686)
I/System.out:     at net.bytebuddy.dynamic.loading.ByteArrayClassLoader$ClassDefinitionAction.run(ByteArrayClassLoader.java:638)
        at java.security.AccessController.doPrivileged(AccessController.java:59)
        at net.bytebuddy.dynamic.loading.ByteArrayClassLoader.doPrivileged(Unknown Source:6)
        at net.bytebuddy.dynamic.loading.ByteArrayClassLoader.findClass(ByteArrayClassLoader.java:405)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
    	... 21 more
    	

PopeNobody avatar May 09 '22 19:05 PopeNobody

You would need to add byte-buddy-android and use the AndroidClassLoadingStrategy as second argument to load for this to work.

raphw avatar May 09 '22 21:05 raphw

"I see", said the Blind Man, as he picked up his hammer and saw!

PopeNobody avatar May 10 '22 06:05 PopeNobody

Thanks!

PopeNobody avatar May 10 '22 06:05 PopeNobody