Kommunicate-io / Kommunicate-Flutter-Plugin

A flutter plugin for Kommunicate customer support live chat.
BSD 3-Clause "New" or "Revised" License
16 stars 23 forks source link

Flutter run error AndoridManifest #97

Closed addreeh closed 11 months ago

addreeh commented 11 months ago

I tried to launch my application with the latest plugin version and I get this error: `C:\Users\Administrator\Desktop\flutter\tgpersonalcloud\android\app\src\debug\AndroidManifest.xml Error: Attribute application@label value=(TGPersonalCloud) from (unknown) is also present at [io.kommunicate.sdk:kommunicateui:2.8.0] AndroidManifest.xml:21:9-41 value=(@string/app_name). Suggestion: add 'tools:replace="android:label"' to element at AndroidManifest.xml:9:5-41:19 to override.

FAILURE: Build failed with an exception.

BUILD FAILED in 2s Running Gradle task 'assembleDebug'... 3,2s Exception: Gradle task assembleDebug failed with exit code 1`

I also tried to add the tools:replace line and i get this other error: ` FAILURE: Build failed with an exception.

BUILD FAILED in 2s Running Gradle task 'assembleDebug'... 3,1s Exception: Gradle task assembleDebug failed with exit code 1`

pranaysaini04 commented 11 months ago

@addreeh its happening because of the "label" attribute is also defined in our SDK.Try to 'tools:replace="android:label". attribute to the application element in your AndroidManifest.xml file.

addreeh commented 11 months ago

I already did it, I put it in the issue, this is the error trace:

FAILURE: Build failed with an exception.

BUILD FAILED in 33s Running Gradle task 'assembleDebug'... 34,5s Exception: Gradle task assembleDebug failed with exit code 1

pranaysaini04 commented 11 months ago

@addreeh can you share your AndroidManifest code

addreeh commented 11 months ago

`

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
<application
    android:requestLegacyExternalStorage="true"
    android:label="TGPersonalCloud"
    android:name="${applicationName}"
    android:icon="@mipmap/ic_launcher"
    tools:replace="android:label">
    <activity
        android:name=".MainActivity"
        android:exported="true"
        android:launchMode="singleTop"
        android:theme="@style/LaunchTheme"
        android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
        android:hardwareAccelerated="true"
        android:windowSoftInputMode="adjustResize">
        <!-- Specifies an Android theme to apply to this Activity as soon as
             the Android process has started. This theme is visible to the user
             while the Flutter UI initializes. After that, this theme continues
             to determine the Window background behind the Flutter UI. -->
        <meta-data
          android:name="io.flutter.embedding.android.NormalTheme"
          android:resource="@style/NormalTheme"
          />
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>
    <!-- Don't delete the meta-data below.
         This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
    <meta-data
        android:name="flutterEmbedding"
        android:value="2" />
</application>

`

pranaysaini04 commented 11 months ago

which gradle version you are using?

pranaysaini04 commented 11 months ago

@addreeh try to add this line (xmlns:tools="http://schemas.android.com/tools") under manifest element

pranaysaini04 commented 11 months ago

@addreeh

Screenshot 2023-10-01 at 3 00 07 PM

Like this

addreeh commented 11 months ago

Ok, its working thanks. Another doubt, is possibly to open the chatbot at elevated button press?

pranaysaini04 commented 11 months ago

You can call buildConversation method of kommunicate in the onPressed()

addreeh commented 11 months ago

I tried and it gives me this error and the app crash: I/HttpRequestUtils(16076): Calling url [GET] : https://api.kommunicate.io/users/v2/chat/plugin/settings?appId=API E/FrameTracker(16076): force finish cuj, time out: JIME_INSETS_ANIMATION::1@1@com.example.flutter_python_example D/TrafficStats(16076): tagSocket(128) with statsTag=0xffffffff, statsUid=-1 I/HttpRequestUtils(16076): GET Response for url: https://api.kommunicate.io/users/v2/chat/plugin/settings?appId=API I/HttpRequestUtils(16076): Response : {"code":"SUCCESS","response":{"userName":"Friendly Stingray","agentId":"apinhid@iesmarquesdecomares.org","agentName":"Adrián Pino","chatWidget":{"fileUpload":"awsS3Server","notificationTone":"subtle","botMessageDelayInterval":1000},"collectFeedback":true,"customerCreatedAt":"2023-09-29T09:09:16.000Z","chatPopupMessage":[],"leadCollection":null,"collectLead":false,"applicationId":"17de187d28fca68d8092b518d6fa2eb2c","isCsatAvailable":true,"currentActivatedPlan":"trial"}} I/HttpRequestUtils(16076): D/EGL_emulation(16076): app_time_stats: avg=49.61ms min=2.59ms max=915.49ms count=21 W/System.err(16076): java.io.FileNotFoundException: /data/user/0/com.example.flutter_python_example/files/kommunicate-settings.json: open failed: ENOENT (No such file or directory) W/System.err(16076): at libcore.io.IoBridge.open(IoBridge.java:574) W/System.err(16076): at java.io.FileInputStream.(FileInputStream.java:160) W/System.err(16076): at java.io.FileReader.(FileReader.java:75) W/System.err(16076): at com.applozic.mobicommons.file.FileUtils.loadSettingsJsonFile(FileUtils.java:489) W/System.err(16076): at com.applozic.mobicomkit.uiwidgets.conversation.activity.ConversationActivity.onCreate(ConversationActivity.java:351) W/System.err(16076): at android.app.Activity.performCreate(Activity.java:8595) W/System.err(16076): at android.app.Activity.performCreate(Activity.java:8573) W/System.err(16076): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1456) W/System.err(16076): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3764) W/System.err(16076): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3922) W/System.err(16076): at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103) W/System.err(16076): at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:139) W/System.err(16076): at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:96) W/System.err(16076): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2443) W/System.err(16076): at android.os.Handler.dispatchMessage(Handler.java:106) W/System.err(16076): at android.os.Looper.loopOnce(Looper.java:205) W/System.err(16076): at android.os.Looper.loop(Looper.java:294) W/System.err(16076): at android.app.ActivityThread.main(ActivityThread.java:8176) W/System.err(16076): at java.lang.reflect.Method.invoke(Native Method) W/System.err(16076): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552) W/System.err(16076): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971) W/System.err(16076): Caused by: android.system.ErrnoException: open failed: ENOENT (No such file or directory) W/System.err(16076): at libcore.io.Linux.open(Native Method) W/System.err(16076): at libcore.io.ForwardingOs.open(ForwardingOs.java:563) W/System.err(16076): at libcore.io.BlockGuardOs.open(BlockGuardOs.java:274) W/System.err(16076): at libcore.io.ForwardingOs.open(ForwardingOs.java:563) W/System.err(16076): at android.app.ActivityThread$AndroidOs.open(ActivityThread.java:8062) W/System.err(16076): at libcore.io.IoBridge.open(IoBridge.java:560) W/System.err(16076): ... 20 more W/_python_example(16076): Accessing hidden method Landroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z (unsupported, reflection, allowed) W/_python_example(16076): Accessing hidden method Landroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V (unsupported, reflection, allowed) D/CompatibilityChangeReporter(16076): Compat change id reported: 210923482; UID 10183; state: ENABLED W/System.err(16076): java.io.FileNotFoundException: /data/user/0/com.example.flutter_python_example/files/kommunicate-settings.json: open failed: ENOENT (No such file or directory) W/System.err(16076): at libcore.io.IoBridge.open(IoBridge.java:574) W/System.err(16076): at java.io.FileInputStream.(FileInputStream.java:160) W/System.err(16076): at java.io.FileReader.(FileReader.java:75) W/System.err(16076): at com.applozic.mobicommons.file.FileUtils.loadSettingsJsonFile(FileUtils.java:489) W/System.err(16076): at com.applozic.mobicomkit.uiwidgets.conversation.fragment.MobiComQuickConversationFragment.onCreate(MobiComQuickConversationFragment.java:108) W/System.err(16076): at androidx.fragment.app.Fragment.performCreate(Fragment.java:2586) W/System.err(16076): at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:838) W/System.err(16076): at androidx.fragment.app.FragmentTransition.addToFirstInLastOut(FragmentTransition.java:1197) W/System.err(16076): at androidx.fragment.app.FragmentTransition.calculateFragments(FragmentTransition.java:1080) W/System.err(16076): at androidx.fragment.app.FragmentTransition.startTransitions(FragmentTransition.java:119) W/System.err(16076): at androidx.fragment.app.FragmentManagerImpl.executeOpsTogether(FragmentManagerImpl.java:1866) W/System.err(16076): at androidx.fragment.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManagerImpl.java:1824) W/System.err(16076): at androidx.fragment.app.FragmentManagerImpl.execPendingActions(FragmentManagerImpl.java:1727) W/System.err(16076): at androidx.fragment.app.FragmentManagerImpl.executePendingTransactions(FragmentManagerImpl.java:183) W/System.err(16076): at com.applozic.mobicomkit.uiwidgets.conversation.activity.ConversationActivity.addFragment(ConversationActivity.java:208) W/System.err(16076): at com.applozic.mobicomkit.uiwidgets.conversation.activity.ConversationActivity.onCreate(ConversationActivity.java:418) W/System.err(16076): at android.app.Activity.performCreate(Activity.java:8595) W/System.err(16076): at android.app.Activity.performCreate(Activity.java:8573) W/System.err(16076): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1456) W/System.err(16076): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3764) W/System.err(16076): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3922) W/System.err(16076): at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103) W/System.err(16076): at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:139) W/System.err(16076): at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:96) W/System.err(16076): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2443) W/System.err(16076): at android.os.Handler.dispatchMessage(Handler.java:106) W/System.err(16076): at android.os.Looper.loopOnce(Looper.java:205) W/System.err(16076): at android.os.Looper.loop(Looper.java:294) W/System.err(16076): at android.app.ActivityThread.main(ActivityThread.java:8176) W/System.err(16076): at java.lang.reflect.Method.invoke(Native Method) W/System.err(16076): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552) W/System.err(16076): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971) W/System.err(16076): Caused by: android.system.ErrnoException: open failed: ENOENT (No such file or directory) W/System.err(16076): at libcore.io.Linux.open(Native Method) W/System.err(16076): at libcore.io.ForwardingOs.open(ForwardingOs.java:563) W/System.err(16076): at libcore.io.BlockGuardOs.open(BlockGuardOs.java:274) W/System.err(16076): at libcore.io.ForwardingOs.open(ForwardingOs.java:563) W/System.err(16076): at android.app.ActivityThread$AndroidOs.open(ActivityThread.java:8062) W/System.err(16076): at libcore.io.IoBridge.open(IoBridge.java:560) W/System.err(16076): ... 31 more D/TrafficStats(16076): tagSocket(147) with statsTag=0xffffffff, statsUid=-1 D/AutofillManager(16076): Fill dialog is enabled:false, hints=[password, passwordAuto, creditCardNumber, creditCardSecurityCode, creditCardExpirationDate] E/_python_example(16076): No package ID ff found for resource ID 0xffffffff. D/CompatibilityChangeReporter(16076): Compat change id reported: 171228096; UID 10183; state: ENABLED D/CompatibilityChangeReporter(16076): Compat change id reported: 194532703; UID 10183; state: ENABLED D/CompatibilityChangeReporter(16076): Compat change id reported: 253665015; UID 10183; state: DISABLED I/SyncCall(16076): Syncing message metadata I/HttpRequestUtils(16076): Calling url [GET] : https://chat.kommunicate.io/rest/ws/message/list?startIndex=0&mainPageSize=60&&deletedGroupIncluded=false W/System.err(16076): java.io.FileNotFoundException: /data/user/0/com.example.flutter_python_example/files/kommunicate-settings.json: open failed: ENOENT (No such file or directory) W/System.err(16076): at libcore.io.IoBridge.open(IoBridge.java:574) W/System.err(16076): at java.io.FileInputStream.(FileInputStream.java:160) W/System.err(16076): at java.io.FileReader.(FileReader.java:75) W/System.err(16076): at com.applozic.mobicommons.file.FileUtils.loadSettingsJsonFile(FileUtils.java:489) W/System.err(16076): at com.applozic.mobicomkit.uiwidgets.conversation.fragment.MobiComConversationFragment.onCreate(MobiComConversationFragment.java:418) W/System.err(16076): at com.applozic.mobicomkit.uiwidgets.conversation.fragment.ConversationFragment.onCreate(ConversationFragment.java:70) W/System.err(16076): at androidx.fragment.app.Fragment.performCreate(Fragment.java:2586) W/System.err(16076): at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:838) W/System.err(16076): at androidx.fragment.app.FragmentTransition.addToFirstInLastOut(FragmentTransition.java:1197) W/System.err(16076): at androidx.fragment.app.FragmentTransition.calculateFragments(FragmentTransition.java:1080) W/System.err(16076): at androidx.fragment.app.FragmentTransition.startTransitions(FragmentTransition.java:119) W/System.err(16076): at androidx.fragment.app.FragmentManagerImpl.executeOpsTogether(FragmentManagerImpl.java:1866) W/System.err(16076): at androidx.fragment.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManagerImpl.java:1824) W/System.err(16076): at androidx.fragment.app.FragmentManagerImpl.execPendingActions(FragmentManagerImpl.java:1727) W/System.err(16076): at androidx.fragment.app.FragmentManagerImpl.executePendingTransactions(FragmentManagerImpl.java:183) W/System.err(16076): at com.applozic.mobicomkit.uiwidgets.conversation.activity.ConversationActivity.addFragment(ConversationActivity.java:208) W/System.err(16076): at com.applozic.mobicomkit.uiwidgets.conversation.activity.ConversationActivity.addFragment(ConversationActivity.java:840) W/System.err(16076): at com.applozic.mobicomkit.uiwidgets.conversation.ConversationUIService$2.run(ConversationUIService.java:166) W/System.err(16076): at android.os.Handler.handleCallback(Handler.java:958) W/System.err(16076): at android.os.Handler.dispatchMessage(Handler.java:99) W/System.err(16076): at android.os.Looper.loopOnce(Looper.java:205) W/System.err(16076): at android.os.Looper.loop(Looper.java:294) W/System.err(16076): at android.app.ActivityThread.main(ActivityThread.java:8176) W/System.err(16076): at java.lang.reflect.Method.invoke(Native Method) W/System.err(16076): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552) W/System.err(16076): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971) W/System.err(16076): Caused by: android.system.ErrnoException: open failed: ENOENT (No such file or directory) W/System.err(16076): at libcore.io.Linux.open(Native Method) W/System.err(16076): at libcore.io.ForwardingOs.open(ForwardingOs.java:563) W/System.err(16076): at libcore.io.BlockGuardOs.open(BlockGuardOs.java:274) W/System.err(16076): at libcore.io.ForwardingOs.open(ForwardingOs.java:563) W/System.err(16076): at android.app.ActivityThread$AndroidOs.open(ActivityThread.java:8062) W/System.err(16076): at libcore.io.IoBridge.open(IoBridge.java:560) W/System.err(16076): ... 25 more E/_python_example(16076): No package ID ff found for resource ID 0xffffffff. D/AndroidRuntime(16076): Shutting down VM E/AndroidRuntime(16076): FATAL EXCEPTION: main E/AndroidRuntime(16076): Process: com.example.flutter_python_example, PID: 16076 E/AndroidRuntime(16076): java.lang.NullPointerException: Attempt to invoke virtual method 'boolean com.applozic.mobicomkit.uiwidgets.conversation.MobicomMessageTemplate.isLeftAligned()' on a null object reference
E/AndroidRuntime(16076): at com.applozic.mobicomkit.uiwidgets.conversation.fragment.MobiComConversationFragment.onCreateView(MobiComConversationFragment.java:648) E/AndroidRuntime(16076): at com.applozic.mobicomkit.uiwidgets.conversation.fragment.ConversationFragment.onCreateView(ConversationFragment.java:102) E/AndroidRuntime(16076): at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2600) E/AndroidRuntime(16076): at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:881) E/AndroidRuntime(16076): at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManagerImpl.java:1238) E/AndroidRuntime(16076): at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:1303) E/AndroidRuntime(16076): at androidx.fragment.app.BackStackRecord.executeOps(BackStackRecord.java:439) E/AndroidRuntime(16076): at androidx.fragment.app.FragmentManagerImpl.executeOps(FragmentManagerImpl.java:2079) E/AndroidRuntime(16076): at androidx.fragment.app.FragmentManagerImpl.executeOpsTogether(FragmentManagerImpl.java:1869) E/AndroidRuntime(16076): at androidx.fragment.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManagerImpl.java:1824) E/AndroidRuntime(16076): at androidx.fragment.app.FragmentManagerImpl.execPendingActions(FragmentManagerImpl.java:1727) E/AndroidRuntime(16076): at androidx.fragment.app.FragmentManagerImpl.executePendingTransactions(FragmentManagerImpl.java:183) E/AndroidRuntime(16076): at com.applozic.mobicomkit.uiwidgets.conversation.activity.ConversationActivity.addFragment(ConversationActivity.java:208) E/AndroidRuntime(16076): at com.applozic.mobicomkit.uiwidgets.conversation.activity.ConversationActivity.addFragment(ConversationActivity.java:840) E/AndroidRuntime(16076): at com.applozic.mobicomkit.uiwidgets.conversation.ConversationUIService$2.run(ConversationUIService.java:166) E/AndroidRuntime(16076): at android.os.Handler.handleCallback(Handler.java:958) E/AndroidRuntime(16076): at android.os.Handler.dispatchMessage(Handler.java:99) E/AndroidRuntime(16076): at android.os.Looper.loopOnce(Looper.java:205) E/AndroidRuntime(16076): at android.os.Looper.loop(Looper.java:294) E/AndroidRuntime(16076): at android.app.ActivityThread.main(ActivityThread.java:8176) E/AndroidRuntime(16076): at java.lang.reflect.Method.invoke(Native Method) E/AndroidRuntime(16076): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552) E/AndroidRuntime(16076): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971) I/Process (16076): Sending signal. PID: 16076 SIG: 9

Flutter code: onPressed: () async { dynamic conversationObject = { 'appId': 'API' }; await KommunicateFlutterPlugin.buildConversation( conversationObject); },

Also tried with: onPressed: () async { dynamic conversationObject = { 'appId': 'API', // The APP_ID obtained from kommunicate dashboard. };

                      KommunicateFlutterPlugin.buildConversation(
                              conversationObject)
                          .then((clientConversationId) {
                        print("Conversation builder success : " +
                            clientConversationId.toString());
                      }).catchError((error) {
                        print("Conversation builder error : " +
                            error.toString());
                      });
                    },
addreeh commented 11 months ago

I fix that using that https://docs.kommunicate.io/docs/android-customization

pranaysaini04 commented 11 months ago

@addreeh that above crash temporary. Fix is to add that applozic-settings.json file, in the upcoming release it will be fixed and you will not be required to add that customisation file

addreeh commented 11 months ago

And there is any way to customize the colors? I am trying to change it in taht file applozic-settings.json, but it dont change. Also is ther any way that each time u open the chat widget it show empy and not with the history?

pranaysaini04 commented 11 months ago

@addreeh which colour customisation are you trying to do,And are you creating new user everytime when build conversation method is called?