WindSekirun / NaraeAudioRecorder

AudioRecorder for Android powered by Kotlin
Apache License 2.0
91 stars 20 forks source link

Persmission check Issue #5

Closed IbrahimMAATKI closed 5 years ago

IbrahimMAATKI commented 5 years ago
java.lang.NoClassDefFoundError: Failed resolution of: Lpyxis/uzuki/live/richutilskt/utils/RPermission;
    at com.github.windsekirun.naraeaudiorecorder.NaraeAudioRecorder.requestPermission(NaraeAudioRecorder.kt:184)
    at com.github.windsekirun.naraeaudiorecorder.NaraeAudioRecorder.checkPermission(NaraeAudioRecorder.kt:72)
    at com.dewarder.holdinglibrary.HoldingButtonLayout.notifyOnBeforeExpand(HoldingButtonLayout.java:467)
    at com.dewarder.holdinglibrary.HoldingButtonLayout.access$200(HoldingButtonLayout.java:44)
    at com.dewarder.holdinglibrary.HoldingButtonLayout$DrawableListener.onBeforeExpand(HoldingButtonLayout.java:507)
    at com.dewarder.holdinglibrary.HoldingDrawable.notifyOnBeforeExpand(HoldingDrawable.java:375)
    at com.dewarder.holdinglibrary.HoldingDrawable.expand(HoldingDrawable.java:152)
    at com.dewarder.holdinglibrary.HoldingButtonLayout.onTouchEvent(HoldingButtonLayout.java:232)
    at android.view.View.dispatchTouchEvent(View.java:13471)
    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3216)
    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2888)
    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3222)
    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2845)
    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3222)
    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2845)
    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3222)
    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2845)
    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3222)
    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2845)
    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3222)
    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2845)
    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3222)
    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2845)
    at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:697)
    at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1879)
    at android.app.Activity.dispatchTouchEvent(Activity.java:3487)
    at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:69)
    at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:655)
    at android.view.View.dispatchPointerEvent(View.java:13719)
    at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:6134)
    at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:5912)
    at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5361)
    at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5414)
    at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5380)
    at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:5539)
    at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5388)
    at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:5596)
    at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5361)
    at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5414)
    at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5380)
    at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5388)
    at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5361)
    at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:8423)
    at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:8356)
    at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:8309)
    at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:8538)
    at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:198)
    at android.os.MessageQueue.nativePollOnce(Native Method)
    at android.os.MessageQueue.next(MessageQueue.java:326)
    at android.os.Looper.loop(Looper.java:181)
    at android.app.ActivityThread.main(ActivityThread.java:7076)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:965)
Caused by: java.lang.ClassNotFoundException: Didn't find class "pyxis.uzuki.live.richutilskt.utils.RPermission" on path: DexPathList[[zip file "/system/framework/org.apache.http.legacy.boot.jar", zip file "/data/app/com.zedney.camion-7RgD9tCfogK-IFMK_0WTOQ==/base.apk"],nativeLibraryDirectories=[/data/app/com.zedney.camion-7RgD9tCfogK-IFMK_0WTOQ==/lib/arm64, /system/lib64]]
    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:134)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
    ... 55 more

my gradle file config

apply plugin: 'com.android.application'

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-android-extensions'

apply plugin: 'kotlin-kapt'

android {
    compileSdkVersion 29
    buildToolsVersion '29.0.2'
    defaultConfig {
        applicationId "com********"
        minSdkVersion 19
        targetSdkVersion 29
        versionCode 8
        versionName '0.0.0.1'
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        multiDexEnabled true
        dexOptions {
            javaMaxHeapSize "4g"
        }

        buildConfigField "String", "G_API_KEY", "\"******\""
        versionNameSuffix = '.PreAlpha'
    }
    buildTypes {
        release {
            buildConfigField "String", "URL_API", "\"*****\""
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
        debug {
            buildConfigField "String", "URL_API", "\"******\""
        }
    }

    buildTypes.each {
        it.buildConfigField 'String', 'APP_ID', APP_ID
        it.buildConfigField 'String', 'AUTH_KEY', AUTH_KEY
        it.buildConfigField 'String', 'AUTH_SECRET', AUTH_SECRET
        it.buildConfigField 'String', 'ACCOUNT_KEY', ACCOUNT_KEY
    }

    dataBinding {
        enabled = true
    }
    compileOptions {
        sourceCompatibility 1.8
        targetCompatibility 1.8
    }
    dexOptions {
        javaMaxHeapSize "4g"
        preDexLibraries true
        dexInProcess = true
    }
    aaptOptions {
        additionalParameters "--no-version-vectors"
    }
    productFlavors {
    }
}

kapt {
    generateStubs = true
    correctErrorTypes = true
}

sourceSets {
    main {
        java {
            srcDir "${buildDir}/generated/source/kapt/main"
        }
    }
    test {
        java {
            srcDir 'src/test/java'
        }
    }
}

dependencies {

    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
    implementation 'androidx.appcompat:appcompat:1.1.0-rc01'
    implementation 'androidx.vectordrawable:vectordrawable:1.1.0-rc01'
    implementation 'androidx.core:core-ktx:1.2.0-alpha03'
    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
    implementation 'androidx.recyclerview:recyclerview:1.1.0-beta03'
    implementation 'androidx.cardview:cardview:1.0.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta2'
    implementation 'com.android.support:multidex:1.0.3'
    kapt 'com.android.databinding:compiler:3.2.0-alpha10'

    // --> additional

    kapt "androidx.lifecycle:lifecycle-common-java8:$lifecycle_version"
    implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version"
    implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version"
    kapt 'com.android.databinding:compiler:3.2.0-alpha10'
    implementation 'com.intuit.sdp:sdp-android:1.0.6'
    implementation 'com.intuit.ssp:ssp-android:1.0.6'
    implementation 'com.hbb20:ccp:2.3.1'
    implementation 'com.github.bumptech.glide:glide:4.9.0'
    kapt 'com.github.bumptech.glide:compiler:4.9.0'
    implementation 'com.nex3z:flow-layout:1.3.0'
    implementation 'com.github.smarteist:autoimageslider:1.3.2'
    implementation 'com.daimajia.easing:library:2.1@aar'
    implementation 'com.daimajia.androidanimations:library:2.3@aar'
    implementation 'de.hdodenhof:circleimageview:3.0.1'
    implementation(project(':leku')) {
        exclude group: 'com.google.android.gms'
        exclude group: 'androidx.appcompat'
        exclude group: 'com.google.android.libraries.places'
    }
    implementation("com.github.esafirm.android-image-picker:imagepicker:2.1.0", {
        exclude group: 'com.github.bumptech.glide', module: 'glide'
    })
    implementation 'com.github.chrisbanes:PhotoView:2.3.0'
    implementation 'com.dewarder:holdingbutton:0.1.3'
    // additional <---

    // chat <---
    implementation "com.quickblox:quickblox-android-sdk-chat:$rootProject.qbSdkVersion"
    implementation "com.quickblox:quickblox-android-sdk-content:$rootProject.qbSdkVersion"
    implementation "com.quickblox:quickblox-android-sdk-messages:$rootProject.qbSdkVersion"
    implementation 'com.github.stfalcon:chatkit:0.3.3'
    implementation 'com.github.siyamed:android-shape-imageview:0.9.+@aar'
    // ---> chat

    // audio recording <---
    implementation 'com.github.WindSekirun.NaraeAudioRecorder:core:1.1.0'
    implementation 'nl.bravobit:android-ffmpeg:1.1.5'
    implementation 'com.github.WindSekirun.NaraeAudioRecorder:ffmpeg-recorder:1.1.0'
    // ---> audio recording

    // --> google
    implementation 'com.google.android.gms:play-services-base:17.1.0'
    implementation 'com.google.android.gms:play-services-gcm:17.0.0'
    implementation 'com.google.android.gms:play-services-auth:17.0.0'
    implementation 'com.google.android.gms:play-services-location:17.0.0'
    implementation 'com.google.android.gms:play-services-maps:17.0.0'
    implementation 'com.google.android.libraries.places:places-compat:2.0.0'
    implementation 'com.google.android.material:material:1.1.0-alpha09'
    implementation 'com.google.firebase:firebase-core:17.2.0'
    implementation 'com.google.firebase:firebase-auth:19.0.0'
    implementation 'com.google.firebase:firebase-messaging:20.0.0'
    implementation 'com.google.firebase:firebase-crash:16.2.1'
    // google <---

    // ----> networking
    implementation 'com.squareup.retrofit2:retrofit:2.6.1'
    implementation 'com.squareup.retrofit2:converter-gson:2.6.1'
    implementation 'com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0'
    implementation 'com.squareup.okhttp3:logging-interceptor:3.12.1'
    implementation 'io.reactivex.rxjava2:rxjava:2.2.11'
    implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
    implementation 'com.patloew.rxlocation:rxlocation:1.0.5'
    implementation 'com.fasterxml.jackson.core:jackson-databind:2.10.0.pr1'
    implementation 'com.fasterxml.jackson.core:jackson-annotations:2.10.0.pr1'
    // networking <----

    testImplementation 'junit:junit:4.13-beta-3'
    androidTestImplementation 'androidx.test:runner:1.3.0-alpha02'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0-alpha02'
}
apply plugin: 'com.google.gms.google-services'
WindSekirun commented 5 years ago

Can you add implementation 'com.github.WindSekirun:RichUtilsKt:2.4.0-remove-inapp' into app/build.gradle?

IbrahimMAATKI commented 5 years ago

@WindSekirun that's it , issue fixed ... thanks

iRYO400 commented 5 years ago

It's not cool that you're forcing to use your own library :/

iRYO400 commented 5 years ago

And the saddest part, you can't check if it's granted or not without making request

WindSekirun commented 5 years ago

@IbrahimMAATKI @iRYO400 I have plan to remove RichUtilsKt in #7.