Giter VIP home page Giter VIP logo

unimgpicker's Introduction

unimgpicker

Image picker for Unity iOS/Android

unimgpicker_ios unimgpicker_android

Getting Started

Import unimgpicker.unitypackage into your project.

⚠️ For package developers: This project is under work to adapt with Package Manager. Please use .unitypackage until the migration is done.

Define Photo Library Usage Description on Unimgpicker/Editor/NSPhotoLibraryUsageDescription.txt

ex: Unimgpicker/Editor/NSPhotoLibraryUsageDescription.txt

Use the image to create your profile.

Demo

Read image, create texture and render it on the Cube(MeshRenderer).

using UnityEngine;
using System.Collections;

namespace Kakera
{
    public class PickerController : MonoBehaviour
    {
        [SerializeField]
        private Unimgpicker imagePicker;

        [SerializeField]
        private MeshRenderer imageRenderer;

        void Awake()
        {
            // Unimgpicker returns the image file path.
            imagePicker.Completed += (string path) =>
            {
                StartCoroutine(LoadImage(path, imageRenderer));
            };
        }

        public void OnPressShowPicker()
        {
            // With v1.1 or greater, you can set the maximum size of the image
            // to save the memory usage.
            imagePicker.Show("Select Image", "unimgpicker", 1024);
        }

        private IEnumerator LoadImage(string path, MeshRenderer output)
        {
            var url = "file://" + path;
            var www = new WWW(url);
            yield return www;

            var texture = www.texture;
            if (texture == null)
            {
                Debug.LogError("Failed to load texture url:" + url);
            }

            output.material.mainTexture = texture;
        }
    }
}

Environment

The code is developed on following environments. Note that these are NOT minimum version requirements.

Platform OS IDE
iOS 13.3 Xcode 11.6
Android 10.0 (API 29) Android Studio 4.0.1

Minimum SDK Versions

Platform SDK Version
Android 6.0 (API 23)

For Developers

Running formatter

# If clang-format is installed.
$ make format

# If docker is installed.
$ docker build -t unimgpicker .
$ docker run --rm -v $PWD:/build -w /build unimgpicker make format

Customize Unimgpicker by Self

Unimgpicker embedds Obj-C & Java code as Unity plugin. You can make changes to the code.

unimgpicker's People

Contributors

kirax999 avatar thedoritos avatar uskey512 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

unimgpicker's Issues

Cancel response

How to get cancel response while picking image in android / ios / unity editor.

Gradle error when build for android

Hello, i get this error when i'm build my project to android with Gradle build system;

Caused by: com.android.dx.cf.iface.ParseException: class name (com/kakeragames/unimgpicker/Picker) does not match path (unimgpicker/com/kakeragames/unimgpicker/Picker.class)

Thanks.

unimgpicker is not supported on this platform

I downloaded the zip, unzipped and opened the project in Unity.
When I run the Picker scene, everyone works fine.

I then go to my own project and import the package and open the same Picker scene. I made sure my Build settings were the same and I run the project.

Click "Show Picker" in my own project shows "Umimgpicker is not supported on this platform".

Same scene, same build settings (target PC/Mac & Linux standalone). Arch=x86/64

Any ideas?

Return path of any file

Can you make it like we can select any type of file and then handle it in unity itself.

Can you modify it for Android and IOS both ??

Thanks in advance

How to get size before compression of image in android environment

Hello, I'm working on a feature that registers images using Unimgpicker. We are trying to limit the size of image files when using this function. The size of the image file is imported the same on ios and window, but in the case of Android, the image file is compressed and the size is reduced. Is there a way to get the file size before compression?

Alternative to using delgate to get URL

picker.Completed += (string path) => { LoadImage(path); };

void LoadImage(string path) { ... }

The above code works fine, but all scripts with the "LoadImage" method is called which is an issue when I want to change individual images.

Undefined symbols for architecture arm64

I included the files in my project and tried to replicate the location of the files as much as possible.
The picker is working fine on Unity Editor. But, when i try to run the app on iOS, i am getting the following error:

Undefined symbols for architecture arm64:
  "_Unimgpicker_show", referenced from:
      _PickeriOS_Unimgpicker_show_m2060843898 in Bulk_Assembly-CSharp_0.o
     (maybe you meant: _PickeriOS_Unimgpicker_show_m2060843898)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

The sample app is working fine on the same iPad so i believe the issue could be the location of the files or the name spaces.

The issue is that, there is not description on how to include this plugin in your project.
Please support me with this issue.

Saving Image

How can we save the image,So that after closing and reopening the app Image should be available?

No apps can perform this action

Hello! Great unity addon! On devices with Android 4.2.1 all works fine. But old china device E1901_v77 (Android 4.1.1, 2 Core, 512RAM) when I press Show Picker I see only window: "No apps can perform this action". On Doogee (LEO_DG280) with android 5.0 window Gallerey show, but when I select image error window: "Unfortunatley, unimgpicker has stopped" and Gallerey shows again.

Android rotated texture

Hi,
First of all thank you for providing this amazing plugin as open source.
It works great and fast but from what I see images are rotated 90 degree. How can I fix this?
Best wishes

File Path

Hi,
how can I get the file path of the selected picture ? Its always the same path in the debug log

Find real image Path in android & IOS

Hello,
I found the asset you shared amazing and used it with no bugs at all.
The only problem I found is not getting the real path of the image as I am using an Exif viewer which requires the real image's path to read it from.
Is there a way to find it?

Unimgpicker doesn't work when i push the button

I was open the package and when I play the play mode everything works fine but when I build the scene and try to push the button to upload an image doesn't do anything. How can I fix it?

Handling of IllegalArgumentException

IllegalArgumentException in Picker.java may be thrown by

Bitmap image = Bitmap.createScaledBitmap(roughImage, (int) width, (int) height, true);

and is not presently handled. It would be helpful to catch and handle exception, e.g., by including -

catch (IllegalArgumentException e) {
e.printStackTrace();
Picker.NotifyFailure("Invalid image format or size");
return;
}

Getting error when build with android 'gradle' system

this is error

  • What went wrong:
    Execution failed for task ':transformClassesAndResourcesWithProguardForRelease'.

java.io.IOException: Can't write [/Users/initfusion/Documents/Project/Temp/gradleOut/build/intermediates/transforms/proguard/release/jars/3/1f/main.jar] (Can't read [/Users/initfusion/Documents/Project/Temp/gradleOut/build/intermediates/exploded-aar/gradleOut/Unimgpicker/unspecified/jars/libs/unimgpicker.jar(;;;;;;**/*.class)] (Duplicate zip entry [unimgpicker.jar:com/kakeragames/unimgpicker/BuildConfig.class]))

Image Picker: NullReferenceException

Hi, I could not drag the "Select Image" Button to set as an instance of Image Picker.
But I could drag a cube as an instance of Image Renderer.
What should I set as the instance of Image Picker?
Hope to get the reply soon. Thanks

Unity 2020.3.4
image

How to check image orientation of image

Hi first of all thanks a ton for this awesome plugin .
I was wondering if i can somehow check the orientation of the image, as few images which i pick are 90 degrees right rotated.

image rotate issue

"maxSize" not working in iOS

I'm reading file "Picker.mm" in "Plugins\iOS\Unimgpicker" folder and i see maxSize parameters not use.
Can you update it?

Doesn't work on IOS device

I have an issue on mobile device when I pick the image image browser opens but then I get error message in console : "endMessage: object Unimgpicker not found!"

maxSize constraint not adhered to

Greetings,

I am using your excellent plugin again, on yet another project 👍

However it would appear that the maxSize is not consistently applied to images that are picked, many come through at much higher resolutions. Is this a known issue? - does a workaround exist?

With thanks,
Sigurd

Problem with Unimgpicker

At first I was able to use it (along with Firebase). Then I added it into bigger app, apparently it have a conflict with Playfab, can anybody confirm this? Would be extremely grateful.

Error building for Android

When trying to build for Android, we get these blocking errors (We are using Unity 2017):

The setTestClassesDir(File) method has been deprecated and is scheduled to be removed in Gradle 5.0. Please use the setTestClassesDirs(FileCollection) method instead.
The getTestClassesDir() method has been deprecated and is scheduled to be removed in Gradle 5.0. Please use the getTestClassesDirs() method instead.

Unity 5.5.0f3 / Device: Samsung Galaxy S7 (Android: 6.0.1)

After selecting image in library I got crash with this stack
Build from MacOS Sierra (10.12.3)

//Picker.java line 116
Caused by java.lang.IllegalArgumentException: width and height must be > 0
       at android.graphics.Bitmap.createBitmap(Bitmap.java:967)
       at android.graphics.Bitmap.createBitmap(Bitmap.java:946)
       at android.graphics.Bitmap.createBitmap(Bitmap.java:877)
       at android.graphics.Bitmap.createScaledBitmap(Bitmap.java:753)
       at com.kakeragames.unimgpicker.Picker.onActivityResult(Picker.java:116)
       at android.app.Activity.dispatchActivityResult(Activity.java:7161)
       at android.app.ActivityThread.deliverResults(ActivityThread.java:4921)
       at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4142)
       at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:4250)
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3361)
       at android.app.ActivityThread.access$1100(ActivityThread.java:222)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1795)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:158)
       at android.app.ActivityThread.main(ActivityThread.java:7229)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)

Missing android.support.media.ExifInterface dependency

Thanks for a well-developed plugin. Regrettably I am getting a dependency issue on Android with class android.support.media.ExifInterface missing. Do you have any suggestion for how this may be resolved?

Stack trace as follows -

Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/media/ExifInterface;
at com.kakeragames.unimgpicker.Picker.onActivityResult(Picker.java:122)
at android.app.Activity.dispatchActivityResult(Activity.java:6982)
at android.app.ActivityThread.deliverResults(ActivityThread.java:4049)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:4096)
at android.app.ActivityThread.-wrap20(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1516)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6077)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.media.ExifInterface" on path: DexPathList[[zip file "/data/app/com.longworld.facedoku-1/base.apk"],nativeLibraryDirectories=[/data/app/com.longworld.facedoku-1/lib/arm, /data/app/com.longworld.facedoku-1/base.apk!/lib/armeabi-v7a, /system/lib, /vendor/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:380)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at com.kakeragames.unimgpicker.Picker.onActivityResult(Picker.java:122) 
at android.app.Activity.dispatchActivityResult(Activity.java:6982) 
at android.app.ActivityThread.deliverResults(ActivityThread.java:4049) 
at android.app.ActivityThread.handleSendResult(ActivityThread.java:4096) 
at android.app.ActivityThread.-wrap20(ActivityThread.java) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1516) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:154) 
at android.app.ActivityThread.main(ActivityThread.java:6077) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) 

Not Working In Mobile

  • Not work for mobile when imported in other project.
    -Working correctly in unity editor. but nothing happen in mobile device when click to open gallery.

Doesn't work with WebGL

when I export it to WebGL, the Button does not work. Is it possible to work for online games ?

リサイズ機能を戻して欲しい+Windows対応しました

自前でunimgpickerを改造し、

  1. Windows対応
  2. 画像圧縮+リサイズ
    機能を付けました。便利なので、可能であればオリジナルリポジトリにマージしたく思っています。

しかしながら、この拡張はバージョン1.1.2を基に作られたもので、2番のリサイズ機能を利用するためにはバージョン2.0.0で廃止された、イメージリサイズ機能(maxSize)が必須です。
また、個人的にもイメージリサイズ機能は非常に重要で、必須の機能だと考えているため、この機能の廃止をあまり好ましく思っていません。

コード自体はこちらのリンクで公開しています。
可能であれば、プルリクエストを送ってマージしたいです。

Unity 2018.3.0b5 Android Gradle Build Failed

I was face the problem with Gradle Build but Internal (Deprecated) is okay.

C:/Program Files/Java/jdk1.8.0_181\bin\java.exe -classpath "C:\Program Files\Unity 2018.3.0b5\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\gradle\lib\gradle-launcher-4.6.jar" org.gradle.launcher.GradleMain "-Dorg.gradle.jvmargs=-Xmx40966m" "assembleRelease"

stderr[
D8: Program type already present: com.kakeragames.unimgpicker.BuildConfig
java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: D:\Workspace\ferretking\emembercardappadmin\Temp\gradleOut\build\intermediates\transforms\dexBuilder\release\45, D:\Workspace\ferretking\emembercardappadmin\Temp\gradleOut\build\intermediates\transforms\externalLibsDexMerger\release\0, D:\Workspace\ferretking\emembercardappadmin\Temp\gradleOut\build\intermediates\transforms\dexBuilder\release\41.jar, D:\Workspace\ferretking\emembercardappadmin\Temp\gradleOut\build\intermediates\transforms\dexBuilder\release\43.jar
Learn how to resolve the issue at https://developer.android.com/studio/build/dependencies#duplicate_classes.
Program type already present: com.kakeragames.unimgpicker.BuildConfig
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at java.util.concurrent.ForkJoinTask.getThrowableException(ForkJoinTask.java:593)
	at java.util.concurrent.ForkJoinTask.reportException(ForkJoinTask.java:677)
	at java.util.concurrent.ForkJoinTask.join(ForkJoinTask.java:720)
	at com.google.common.collect.ImmutableList.forEach(ImmutableList.java:406)
	at com.android.build.gradle.internal.transforms.DexMergerTransform.transform(DexMergerTransform.java:228)
	at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:221)
	at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:217)
	at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:102)
	at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:212)
	at sun.reflect.GeneratedMethodAccessor394.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
	at org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:50)
	at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39)
	at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:124)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:113)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:95)
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:73)
	at org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)
	at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:59)
	at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
	at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:59)
	at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:101)
	at org.gradle.api.internal.tasks.execution.FinalizeInputFilePropertiesTaskExecuter.execute(FinalizeInputFilePropertiesTaskExecuter.java:44)
	at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:91)
	at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:62)
	at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:59)
	at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
	at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
	at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
	at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:256)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199)
	at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
	at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:249)
	at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:238)
	at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:123)
	at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access$200(DefaultTaskPlanExecutor.java:79)
	at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:104)
	at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:98)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:663)
	at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:597)
	at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:98)
	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
	at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
	at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: D:\Workspace\ferretking\emembercardappadmin\Temp\gradleOut\build\intermediates\transforms\dexBuilder\release\45, D:\Workspace\ferretking\emembercardappadmin\Temp\gradleOut\build\intermediates\transforms\externalLibsDexMerger\release\0, D:\Workspace\ferretking\emembercardappadmin\Temp\gradleOut\build\intermediates\transforms\dexBuilder\release\41.jar, D:\Workspace\ferretking\emembercardappadmin\Temp\gradleOut\build\intermediates\transforms\dexBuilder\release\43.jar
Learn how to resolve the issue at https://developer.android.com/studio/build/dependencies#duplicate_classes.
Program type already present: com.kakeragames.unimgpicker.BuildConfig
	at java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1431)
	at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
	at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
	at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
	at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
Caused by: com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: D:\Workspace\ferretking\emembercardappadmin\Temp\gradleOut\build\intermediates\transforms\dexBuilder\release\45, D:\Workspace\ferretking\emembercardappadmin\Temp\gradleOut\build\intermediates\transforms\externalLibsDexMerger\release\0, D:\Workspace\ferretking\emembercardappadmin\Temp\gradleOut\build\intermediates\transforms\dexBuilder\release\41.jar, D:\Workspace\ferretking\emembercardappadmin\Temp\gradleOut\build\intermediates\transforms\dexBuilder\release\43.jar
Learn how to resolve the issue at https://developer.android.com/studio/build/dependencies#duplicate_classes.
Program type already present: com.kakeragames.unimgpicker.BuildConfig
	at com.android.builder.dexing.D8DexArchiveMerger.getExceptionToRethrow(D8DexArchiveMerger.java:129)
	at com.android.builder.dexing.D8DexArchiveMerger.mergeDexArchives(D8DexArchiveMerger.java:114)
	at com.android.build.gradle.internal.transforms.DexMergerTransformCallable.call(DexMergerTransformCallable.java:101)
	at com.android.build.gradle.internal.transforms.DexMergerTransformCallable.call(DexMergerTransformCallable.java:36)
	at java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1424)
	... 4 more
Caused by: com.android.tools.r8.CompilationFailedException: Compilation failed to complete
	at com.android.tools.r8.utils.ExceptionUtils.withCompilationHandler(ExceptionUtils.java:71)
	at com.android.tools.r8.utils.ExceptionUtils.withD8CompilationHandler(ExceptionUtils.java:41)
	at com.android.tools.r8.D8.run(D8.java:89)
	at com.android.builder.dexing.D8DexArchiveMerger.mergeDexArchives(D8DexArchiveMerger.java:112)
	... 7 more
Caused by: com.android.tools.r8.utils.AbortException: Error: Program type already present: com.kakeragames.unimgpicker.BuildConfig
	at com.android.tools.r8.utils.Reporter.failIfPendingErrors(Reporter.java:83)
	at com.android.tools.r8.utils.Reporter.fatalError(Reporter.java:62)
	at com.android.tools.r8.utils.ExceptionUtils.withCompilationHandler(ExceptionUtils.java:62)
	... 10 more


FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':transformDexArchiveWithDexMergerForRelease'.
> com.android.build.api.transform.TransformException: java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: D:\Workspace\ferretking\emembercardappadmin\Temp\gradleOut\build\intermediates\transforms\dexBuilder\release\45, D:\Workspace\ferretking\emembercardappadmin\Temp\gradleOut\build\intermediates\transforms\externalLibsDexMerger\release\0, D:\Workspace\ferretking\emembercardappadmin\Temp\gradleOut\build\intermediates\transforms\dexBuilder\release\41.jar, D:\Workspace\ferretking\emembercardappadmin\Temp\gradleOut\build\intermediates\transforms\dexBuilder\release\43.jar
  Learn how to resolve the issue at https://developer.android.com/studio/build/dependencies#duplicate_classes.
  Program type already present: com.kakeragames.unimgpicker.BuildConfig

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 12s
]
stdout[
:preBuild UP-TO-DATE
:OneSignalConfig:preBuild UP-TO-DATE
:OneSignalConfig:preReleaseBuild UP-TO-DATE
:OneSignalConfig:checkReleaseManifest
:OneSignalConfig:processReleaseManifest
:Unimgpicker:preBuild UP-TO-DATE
:Unimgpicker:preReleaseBuild UP-TO-DATE
:Unimgpicker:checkReleaseManifest
:Unimgpicker:processReleaseManifest
:preReleaseBuild
:OneSignalConfig:compileReleaseAidl NO-SOURCE
:Unimgpicker:compileReleaseAidl NO-SOURCE
:compileReleaseAidl NO-SOURCE
:OneSignalConfig:packageReleaseRenderscript NO-SOURCE
:Unimgpicker:packageReleaseRenderscript NO-SOURCE
:compileReleaseRenderscript UP-TO-DATE
:checkReleaseManifest UP-TO-DATE
:generateReleaseBuildConfig UP-TO-DATE
:prepareLintJar UP-TO-DATE
:mainApkListPersistenceRelease UP-TO-DATE
:generateReleaseResValues UP-TO-DATE
:generateReleaseResources UP-TO-DATE
:OneSignalConfig:compileReleaseRenderscript
:OneSignalConfig:generateReleaseResValues
:OneSignalConfig:generateReleaseResources
:OneSignalConfig:packageReleaseResources
:Unimgpicker:compileReleaseRenderscript
:Unimgpicker:generateReleaseResValues
:Unimgpicker:generateReleaseResources
:Unimgpicker:packageReleaseResources
:mergeReleaseResources UP-TO-DATE
:createReleaseCompatibleScreenManifests UP-TO-DATE
:processReleaseManifest
:splitsDiscoveryTaskRelease UP-TO-DATE
:OneSignalConfig:platformAttrExtractor
:Unimgpicker:platformAttrExtractor
:OneSignalConfig:generateReleaseBuildConfig
:OneSignalConfig:prepareLintJar UP-TO-DATE
:OneSignalConfig:javaPreCompileRelease
:OneSignalConfig:processReleaseJavaRes NO-SOURCE
:Unimgpicker:generateReleaseBuildConfig
:Unimgpicker:prepareLintJar UP-TO-DATE
:Unimgpicker:javaPreCompileRelease
:Unimgpicker:processReleaseJavaRes NO-SOURCE
:compileReleaseNdk NO-SOURCE
:mergeReleaseShaders UP-TO-DATE
:compileReleaseShaders UP-TO-DATE
:generateReleaseAssets UP-TO-DATE
:OneSignalConfig:mergeReleaseShaders
:OneSignalConfig:compileReleaseShaders
:OneSignalConfig:generateReleaseAssets
:OneSignalConfig:packageReleaseAssets
:Unimgpicker:mergeReleaseShaders
:Unimgpicker:generateReleaseRFile
:Unimgpicker:generateReleaseSources
:Unimgpicker:compileReleaseJavaWithJavac
:Unimgpicker:transformClassesAndResourcesWithPrepareIntermediateJarsForRelease
:Unimgpicker:compileReleaseShaders
:Unimgpicker:generateReleaseAssets
:Unimgpicker:packageReleaseAssets
:mergeReleaseAssets
:mergeReleaseJniLibFolders UP-TO-DATE
:OneSignalConfig:compileReleaseNdk NO-SOURCE
:OneSignalConfig:mergeReleaseJniLibFolders
:OneSignalConfig:generateReleaseRFile
:processReleaseResources
:generateReleaseSources
:OneSignalConfig:generateReleaseSources
:OneSignalConfig:compileReleaseJavaWithJavac
:OneSignalConfig:transformClassesAndResourcesWithPrepareIntermediateJarsForRelease
:javaPreCompileRelease UP-TO-DATE
:compileReleaseJavaWithJavac
:compileReleaseSources
:lintVitalRelease
:transformClassesWithDexBuilderForRelease
C:\Users\TARTs\.gradle\caches\transforms-1\files-1.1\com.google.firebase.firebase-messaging-12.0.1.aar\fe6b18962577d4fff28fca13a5e49969\jars\classes.jar: D8: Type `com.google.android.gms.measurement.AppMeasurement` was not found, it is required for default or static interface methods desugaring of `com.google.android.gms.measurement.AppMeasurement com.google.firebase.messaging.zzc.zzde(android.content.Context)`
C:\Users\TARTs\.gradle\caches\transforms-1\files-1.1\com.google.firebase.firebase-messaging-12.0.1.aar\fe6b18962577d4fff28fca13a5e49969\jars\classes.jar: D8: Type `com.google.android.gms.measurement.AppMeasurement` was not found, it is required for default or static interface methods desugaring of `com.google.android.gms.measurement.AppMeasurement com.google.firebase.messaging.zzd.zzde(android.content.Context)`
:transformDexArchiveWithExternalLibsDexMergerForRelease
:transformDexArchiveWithDexMergerForRelease FAILED
53 actionable tasks: 38 executed, 15 up-to-date
]
exit code: 1
UnityEditor.Android.Command.WaitForProgramToRun (UnityEditor.Utils.Program p, UnityEditor.Android.Command+WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg) (at <480e50343593457c94864bd38c09a2ca>:0)
UnityEditor.Android.Command.Run (System.Diagnostics.ProcessStartInfo psi, UnityEditor.Android.Command+WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg) (at <480e50343593457c94864bd38c09a2ca>:0)
UnityEdit<message truncated>```

Class not found in android

Hello , when ever i try to call image picker is give me this exception

AndroidJavaException: java.lang.ClassNotFoundException: com.kakeragames.unimgpicker.Picker

Too slow Image loading

 Hi,
I am having a strange bug with a modified version of plugin. After fixing rotation (didnt test before) In a Galaxy tab A t 580 sometimes it loads the image in 8b seconds sometime in 4, but sometimes it loads them fast. In other tablet worst than this one but with android < 7 works fine. I compiled the plugin with sdk target 25 so why can be this issue. I do not know where to start. Please give me a fast response? Could this be an issue in unity side?
Here is code that I use:
#9
Other important thing.
I tried to close area of searching the bug. When we load the image that is landscape there is no code or need to rotate (if i is 180 we need but mostly in my device it is 270 for portrait photos (in problematic device I hadnt chance to test)). So it should work with official version of your plugin (only exif analysis). But the tester report the same time. There is no difference between portrait and landscape. I am definitively gone!

How do we crop the image ?

The image picker takes only certain resolution. What if i have a landscape type image which i need to crop ?

Android Build failure

I run build android. it will popup dialog below
Build failure
com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexException: Multiple dex files define Lcom/kakeragames/unimgpicker/BuildConfig; See the Console for details.

How to fix it?

iOS Crashed

After compiling the Samples project. It runs on iPhone 6 Plus but if you click on the button. You get an error:

'NSInvalidArgumentException', reason: '-[Picker show:outputFileName:]: unrecognized selector sent to instance 0x1702356a0'
*** First throw call stack:
(0x1886211b8 0x18705855c 0x188628268 0x188625270 0x18851e80c 0x10043a7e8 0x1000f2184 0x1002472b8 0x1003ce368 0x100203570 0x10020311c 0x100202ab8 0x100417968 0x100beeb50 0x10067d98c 0x100747c3c 0x100537224 0x100624b70 0x10079e214 0x1000debc4 0x1000deac0 0x18b876f24 0x18b876dd0 0x18888e094 0x1885b6e50 0x1885cf218 0x1885ce9cc 0x1885cc4b0 0x1884fa2b8 0x189fae198 0x18e5417fc 0x18e53c534 0x1000d8a3c 0x1874dd5b8)
libc++abi.dylib: terminating with uncaught exception of type NSException(lldb)

and the app crashed.

If you look into the Plugin folder you get an Warning on line 23: @implementation Picker with this warning:
Libraries/Plugins/iOS/Unimgpicker/Picker.mm:23:17: Method definition for 'show:outputFileName:' not found

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.