Confiquring OpenEDx With Android Application

https://edx.readthedocs.io/projects/edx-installing-configuring-and-running/en/latest/mobile.html

In the above link of documentation:

Enter a Url and Redirect Url for the first mobile application. For example, https://{your_URL}/api/mobile/{version}/?app=ios . While the console requires values for these fields, they are not used by the edX mobile applications. You can enter the same value in both fields.

Here what is your {url} and what is {version} ? Please Help

In

/run/media/jkhawand/DATA/AndroidStudioProjects/edx-app-android/OpenEdXMobile/src/main/java/org/edx/mobile/http/constants/ApiConstants.java

Line 30:

public static final String URL_LAST_ACCESS_FOR_COURSE ="/api/mobile/v0.5/users/{username}/course_status_info/{courseId}";

{version} should be v0.5

{your_URL} is where you access your lms online

Thank You So Much Sir , Please also tell me do i need to change " app=ios " to app =" android"

Hi,

Yes if you are going to build for Android

Sir Do I need to create " my_config " or it will work on “Default config” ? If yes then sir what should i write in android.yaml and shared.yaml file ?

Readme.md

Thankyou Sir App is Now connected to site

I am able to see my enrolled courses and Course Overview
But

  1. not able to open any course contents eg. any Questions ,any Exams ,any Pages.

  2. I am only Able to view video on YouTube , Not on native video player

  3. I am not able to explore courses other than enrolled ones.For example on clicking “Lesson 2 Get interactive” I get Error : ----------------------------------------------------------------------------------------------------
    java.lang.NullPointerException: Attempt to invoke interface method ‘okhttp3.Request retrofit2.Call.request()’ on a null object reference
    at org.edx.mobile.services.EdxCookieManager.tryToRefreshSessionCookie(EdxCookieManager.java:75)
    at org.edx.mobile.view.custom.AuthenticatedWebView.tryToLoadWebView(AuthenticatedWebView.java:223)
    at org.edx.mobile.view.custom.AuthenticatedWebView.loadUrlWithJavascript(AuthenticatedWebView.java:189)
    at org.edx.mobile.view.custom.AuthenticatedWebView.loadUrl(AuthenticatedWebView.java:180)
    at org.edx.mobile.view.CourseUnitWebViewFragment.loadUnit(CourseUnitWebViewFragment.java:102)
    at org.edx.mobile.view.CourseUnitWebViewFragment.onViewCreated(CourseUnitWebViewFragment.java:95)
    at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManager.java:1471)
    at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1784)
    at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManager.java:1852)
    at androidx.fragment.app.BackStackRecord.executeOps(BackStackRecord.java:802)
    at androidx.fragment.app.FragmentManagerImpl.executeOps(FragmentManager.java:2625)
    at androidx.fragment.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2411)
    at androidx.fragment.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2366)
    at androidx.fragment.app.FragmentManagerImpl.execSingleAction(FragmentManager.java:2243)
    at androidx.fragment.app.BackStackRecord.commitNowAllowingStateLoss(BackStackRecord.java:654)
    at androidx.fragment.app.FragmentStatePagerAdapter.finishUpdate(FragmentStatePagerAdapter.java:168)
    at androidx.viewpager.widget.ViewPager.populate(ViewPager.java:1244)
    at androidx.viewpager.widget.ViewPager.populate(ViewPager.java:1092)
    at androidx.viewpager.widget.ViewPager.onMeasure(ViewPager.java:1622)
    at android.view.View.measure(View.java:23204)
    at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:715)
    at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:461)
    at android.view.View.measure(View.java:23204)
    at android.widget.LinearLayout.measureVertical(LinearLayout.java:978)
    at android.widget.LinearLayout.onMeasure(LinearLayout.java:704)
    at android.view.View.measure(View.java:23204)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6753)
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
    at android.view.View.measure(View.java:23204)
    at android.widget.LinearLayout.measureVertical(LinearLayout.java:978)
    at android.widget.LinearLayout.onMeasure(LinearLayout.java:704)
    at android.view.View.measure(View.java:23204)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6753)
    at androidx.coordinatorlayout.widget.CoordinatorLayout.onMeasureChild(CoordinatorLayout.java:733)
    at androidx.coordinatorlayout.widget.CoordinatorLayout.onMeasure(CoordinatorLayout.java:805)
    at android.view.View.measure(View.java:23204)
    at androidx.drawerlayout.widget.DrawerLayout.onMeasure(DrawerLayout.java:1119)
    at android.view.View.measure(View.java:23204)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6753)
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
    at androidx.appcompat.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:143)
    at android.view.View.measure(View.java:23204)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6753)
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
    at android.view.View.measure(View.java:23204)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6753)
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
    at android.view.View.measure(View.java:23204)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6753)
    at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1535)
    at android.widget.LinearLayout.measureVertical(LinearLayout.java:825)
    at android.widget.LinearLayout.onMeasure(LinearLayout.java:704)
    at android.view.View.measure(View.java:23204)
    at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6753)
    at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
    at com.android.internal.policy.DecorView.onMeasure(DecorView.java:720)
    at android.view.View.measure(View.java:23204)
    at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2791)
    at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1641)
    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1925)
    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1529)
    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7394)
    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1009)
    at android.view.Choreographer.doCallbacks(Choreographer.java:821)
    at android.view.Choreographer.doFrame(Choreographer.java:756)
    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:995)
    at android.os.Handler.handleCallback(Handler.java:873)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:201)
    at android.app.ActivityThread.main(ActivityThread.java:6806)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)

I don’t know frankly, i didn’t get farther than making the app work.
And i migrated to Juniper and didn’t get the chance yet to explore all the configurations possible with the mobile app.