Unable to build sample app due to corrupted library AARs

Based on the way AARs were compiled there are interfaces that are simply missing in the latest build.

The version that I’m trying to build: v4.4.55130.0712

In order to reproduce:

  1. simply paste PTApp.getInstance().getIPLocation(false); in any activity in sample project. I did it in MeetingSettingActivity inside of onCreate.
  2. Go to Build->Rebuild project while having sample selected
  3. You will get an error that com.zipow.videobox.ptapp.PTAppProtos is missing.

If you look into decompiled code under Project Inspector -> Project -> External Libraries -> Gradle: artifacts:mobilertc:unspecifed@jar->classes.jar->com->zipow-> videobox -> ptapp you will notice that entire package PTAppProtos is missing!

This IS CRITICAL issue that 100% prevents us to build 64 bit version of the app and thus we can’t release updated version to Play Store!!!

Hi simic,

Thanks for using Zoom SDK and thanks for the post. Using the PTApp is not the correct way to use our SDK, please follow our documentation for the correct way of usage: https://marketplace.zoom.us/docs/sdk/native-sdks/android

Regarding the 64bit, you will need to upgrade your Android project to be AndroidX project in order to use our Zoom SDK. Please see:https://github.com/zoom/zoom-sdk-android#frequently-asked-questions-faq

Thanks!

@Carson_Chen

I’m very well able to read your migration instructions on GitHub. I did migrate to AndroidX.

After migration to AndroidX and updating your library our application is not being built. The only problem is meeting activity.

So when we have following code snippet everything builds properly public class VideoAppointmentActivity extends AppCompatActivity { }, but when we have this line public class VideoAppointmentActivity extends MeetingActivity {} We are getting an error:

error: cannot access PTAppProtos
  class file for com.zipow.videobox.ptapp.PTAppProtos not found
  Consult the following stack trace for details.
  com.sun.tools.javac.code.Symbol$CompletionFailure: class file for com.zipow.videobox.ptapp.PTAppProtos not found
1 error

> Task :app:compileDemoDebugJavaWithJavac FAILED

Edit:
We are also using:

compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

With this your samples are also having 200+ warnings for missing files

Hi simic,

Thanks for the reply. I tried to use our sample app to reproduce this issue, if I am not using PTApp, I am not able to reproduce the issue that you are describing. Using PTApp, I saw the error that you are mentioning. However, the PTApp is an internal class in our SDK and it’s never mentioned or exposed in neither our SDK demo or doc, it should never be accessed directly.

Are you facing the same issues if you are not using PTApp? If yes, could you provide the steps to reproduce this issue with the SDK interfaces?

Thanks!

In order to reproduce an issue you should be thinking a bit of architecture and usability. Seems like entire Zoom team is not really qualified for its job. Making SDK means to make a SDK and not to use your application and recompile it as a library.

To reproduce the issue:

  1. open your sample project,
  2. go to build.gradle of sample
  3. Add Dagger2 dependency (that is dependency injection library if your team is not aware of it, which works with AndroidX by using Jetifier and doesn’t forces developers to have AndoridX as you are requiring because you don’t know how to do your job)
annotationProcessor 'com.google.dagger:dagger-compiler:2.24'
implementation 'com.google.dagger:dagger:2.24'
  1. In the package us.zoom.sdksample.inmeetingfunction create AppModule.java and Graph.java. With following content:
package us.zoom.sdksample.inmeetingfunction.customizedmeetingui;

import dagger.Module;
import dagger.Provides;

@Module
public class AppModule {

    @Provides
    public String getText() { return "text"; }
}
package us.zoom.sdksample.inmeetingfunction.customizedmeetingui;

import javax.inject.Singleton;

import dagger.Component;

@Singleton
@Component(
        modules = { AppModule.class }
)
public interface Graph {

    void inject(MyMeetingActivity myMeetingActivity);

    public final static class Initializer {
        public static Graph init() {
            return DaggerGraph.builder()
                    .appModule(new AppModule())
                    .build();
        }
    }
}
  1. Then replace your MyMeetingActivity.java content with:
public class MyMeetingActivity extends MeetingActivity {

    @Inject String text;
    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Graph.Initializer.init().inject(this);
    }
}
  1. Rebuild sample and you will get the same error.

Or maybe the solution would be to not use dependency injection or any other technique that is more advanced while using your library? Maybe better solution would be to remove your library and stop using it…

This is by far THE WORST SDK I ever used.

We make every effort of maintaining a high-level of professionalism on our forums, I fear this comment is outside our general conduct, please review this FAQ: https://devforum.zoom.us/faq

1 Like

Hi simic,

Thanks for the reply. Unfortunately we are not able to support any usage that are currently not documented in the documentation. I will pass the information you provided to our engineering team and we will investigate the possibility of adding the support in the future. I will inform you here once we have all the support.

Thanks!

1 Like