簡體   English   中英

java.lang.NoClassDefFoundError:使用Amazon S3上傳圖片時Android上的Pre-Lollipop上的com.google.gson.stream.JsonReader錯誤

[英]java.lang.NoClassDefFoundError: com.google.gson.stream.JsonReader error on Pre-Lollipop in android while uploading image with Amazon S3

上傳圖片到亞馬遜s3斗與Android 5及以上工作正常,但在前棒棒糖上獲得Gson錯誤。 以下是我正在使用的代碼。

錯誤:

 FATAL EXCEPTION: TransferSerivce-AWSTransferUpdateHandlerThread
    java.lang.NoClassDefFoundError: com.google.gson.stream.JsonReader
    at com.amazonaws.util.json.GsonFactory$GsonReader.<init>(GsonFactory.java:50)
    at com.amazonaws.util.json.GsonFactory.getJsonReader(GsonFactory.java:38)
    at com.amazonaws.util.json.JsonUtils.getJsonReader(JsonUtils.java:101)
    at com.amazonaws.util.json.JsonUtils.jsonToMap(JsonUtils.java:127)
    at com.amazonaws.util.json.JsonUtils.jsonToMap(JsonUtils.java:166)
    at com.amazonaws.mobileconnectors.s3.transferutility.TransferRecord.updateFromDB(TransferRecord.java:134)
    at com.amazonaws.mobileconnectors.s3.transferutility.TransferDBUtil.getTransferById(TransferDBUtil.java:669)
    at com.amazonaws.mobileconnectors.s3.transferutility.TransferService.execCommand(TransferService.java:284)
    at com.amazonaws.mobileconnectors.s3.transferutility.TransferService$UpdateHandler.handleMessage(TransferService.java:224)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:137)
    at android.os.HandlerThread.run(HandlerThread.java:60)

這是我用來上傳圖片的代碼:

 ClientConfiguration clientConfig = new ClientConfiguration();
                    clientConfig.setConnectionTimeout(120000); // setting connection time out to be 2 minutes.
                    clientConfig.withConnectionTimeout(120000); // setting connection timeout to be 2 minutes.
                    AmazonS3Client awsClient = new AmazonS3Client(
                            new BasicAWSCredentials("accessKey", "secreatKey"),
                            clientConfig);
                    imagePath = "A" + "/" + compressedFile.getName();
                    TransferUtility transferUtility = new TransferUtility(awsClient, getBaseContext());
                    TransferObserver observer = null;
                    try {
                        observer = transferUtility.upload("bucket-name", imagePath, compressedFile);
                    } catch (Exception e) {

                        Log.e(Tag,""+e.toString());
                    }

以上代碼與棒棒糖及以上工作正常,但與棒棒糖前期產生問題

Gson Dependency也認為它可能有所幫助。 但沒有運氣

Gradle依賴:

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'

compile 'com.android.support:appcompat-v7:23.2.1'
compile 'com.android.support:design:23.2.1'
compile 'commons-codec:commons-codec:1.5'
compile 'com.google.android.gms:play-services:8.4.0'

compile 'com.amazonaws:aws-android-sdk-core:2.2.14'
compile 'com.amazonaws:aws-android-sdk-cognito:2.2.14'
compile 'com.amazonaws:aws-android-sdk-s3:2.2.14'

compile 'com.android.support:multidex:1.0.1'
compile 'com.google.code.gson:gson:2.6.2' // added gson hoping 
}

搜索了很多,但沒有任何線索。 任何幫助深深感激。

我沒有android平台的經驗。 但是這里的指南可能會幫助您解決問題。 請注意設置指南中提到的以下警告。

對於Android,您必須將jar文件放在名為“libs”的目錄中,以便APK打包程序可以找到它們。 否則,您將在運行時收到NoClassDefFoundError錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM