使用Outpan';s JAVA API

使用Outpan';s JAVA API,java,android,api,Java,Android,Api,我在Android项目中使用时遇到问题。Outpan官方网站中也提到了该API 我的进步到现在-: 我从下载了OutpanJavaAPI,并将其解压缩 我将src文件夹(下载文件夹)中的文件夹io复制到home->AndroidStudioProjects->(我的项目名称)->app->src->main->java(我在ubuntu上使用Android Studio) 我将libs文件夹(下载文件夹)中的.jar文件复制到home->AndroidStudioProjects->(我的项目

我在Android项目中使用时遇到问题。Outpan官方网站中也提到了该API

我的进步到现在-:

  • 我从下载了OutpanJavaAPI,并将其解压缩
  • 我将src文件夹(下载文件夹)中的文件夹io复制到home->AndroidStudioProjects->(我的项目名称)->app->src->main->java(我在ubuntu上使用Android Studio)
  • 我将libs文件夹(下载文件夹)中的.jar文件复制到home->AndroidStudioProjects->(我的项目名称)->app->libs文件夹
  • 我打开了之前创建的android studio项目(它使用zxing库扫描条形码),并将这两行添加到项目中的导入语句中-: 导入io.github.johncipponeri.outpanapi.outpanapi; 导入io.github.johncipponeri.outpanapi.OutpanObject;
  • 接下来,我使用了github存储库中给出的普通命令(我前面已经提到过)以及适当的API密钥(我已经在Outpan上注册)
  • 接下来,我转到我的项目的gradle文件(Module:app),并将这一行添加到“depenicies”部分-: 编译文件('libs/org.json-20131017.jar')
因此,当我尝试在手机上调试应用程序时,出现了以下错误-:

Information:Gradle tasks [:app:assembleDebug]
:app:preBuild UP-TO-DATE
:app:preDebugBuild UP-TO-DATE
:app:checkDebugManifest
:app:preReleaseBuild UP-TO-DATE
:app:prepareComAndroidSupportAppcompatV72103Library UP-TO-DATE
:app:prepareComAndroidSupportSupportV42103Library UP-TO-DATE
:app:prepareComJourneyappsZxingAndroidEmbedded201Library UP-TO-DATE
:app:prepareComJourneyappsZxingAndroidIntegration201Library UP-TO-DATE
:app:prepareComJourneyappsZxingAndroidLegacy201Library UP-TO-DATE
:app:prepareDebugDependencies
:app:compileDebugAidl UP-TO-DATE
:app:compileDebugRenderscript UP-TO-DATE
:app:generateDebugBuildConfig UP-TO-DATE
:app:generateDebugAssets UP-TO-DATE
:app:mergeDebugAssets UP-TO-DATE
:app:generateDebugResValues UP-TO-DATE
:app:generateDebugResources UP-TO-DATE
:app:mergeDebugResources UP-TO-DATE
:app:processDebugManifest UP-TO-DATE
:app:processDebugResources UP-TO-DATE
:app:generateDebugSources UP-TO-DATE
:app:processDebugJavaRes UP-TO-DATE
:app:compileDebugJava
/home/ashutoshsaboo/AndroidStudioProjects/CodeScan/app/src/main/java/io/github/johncipponeri/outpanapi/OutpanAPI.java
Error:(33, 51) error: cannot find symbol method getEncoder()
/home/ashutoshsaboo/AndroidStudioProjects/CodeScan/app/src/main/java/io/github/johncipponeri/outpanapi/OutpanObject.java
Error:(44, 31) error: cannot find symbol method getNames(JSONObject)
Error:Execution failed for task ':app:compileDebugJava'.
> Compilation failed; see the compiler error output for details.
Information:BUILD FAILED
Information:Total time: 4.348 secs
Information:3 errors
Information:0 warnings
Information:See complete output in console
如果您自己从GitHub下载API会更好,因为您可以单独查看所有文件,因为我无法将所有.java文件的代码粘贴到这里

编辑:

感谢@JohnCipponeri的帮助。我下载了新的API更新版本,并将该文件夹放在我的应用程序->src->main->java文件夹中的src文件夹中,将.jar文件放在我的应用程序->libs文件夹中的libs文件夹中。此外,我将“outpan-api-java-1.1.jar”放在我的app->libs文件夹中,并在我的gradle文件中的依赖项部分下添加了以下行-:

compile fileTree(dir: 'libs', include: ['*.jar'])
compile files('libs/outpan-api-java-1.1.jar')
compile 'com.android.support:appcompat-v7:22.2.0'
但遗憾的是,之前的两个错误仍未解决。那么,我的Android软件包名称是否需要与“io.github.johncipponeri.outpanapi”同名,因为目前我的软件包名称不同

“我的更新消息”对话框-:

Information:Gradle tasks [:app:assembleDebug]
:app:preBuild UP-TO-DATE
:app:preDebugBuild UP-TO-DATE
:app:checkDebugManifest
:app:preReleaseBuild UP-TO-DATE
:app:prepareComAndroidSupportAppcompatV72220Library UP-TO-DATE
:app:prepareComAndroidSupportSupportV42220Library UP-TO-DATE
:app:prepareComJourneyappsZxingAndroidEmbedded201Library UP-TO-DATE
:app:prepareComJourneyappsZxingAndroidIntegration201Library UP-TO-DATE
:app:prepareComJourneyappsZxingAndroidLegacy201Library UP-TO-DATE
:app:prepareDebugDependencies
:app:compileDebugAidl UP-TO-DATE
:app:compileDebugRenderscript UP-TO-DATE
:app:generateDebugBuildConfig UP-TO-DATE
:app:generateDebugAssets UP-TO-DATE
:app:mergeDebugAssets UP-TO-DATE
:app:generateDebugResValues UP-TO-DATE
:app:generateDebugResources UP-TO-DATE
:app:mergeDebugResources UP-TO-DATE
:app:processDebugManifest UP-TO-DATE
:app:processDebugResources UP-TO-DATE
:app:generateDebugSources UP-TO-DATE
:app:processDebugJavaRes UP-TO-DATE
:app:compileDebugJava
/home/ashutoshsaboo/AndroidStudioProjects/CodeScan/app/src/main/java/io/github/johncipponeri/outpanapi/OutpanAPI.java
Error:(48, 17) error: unreported exception JSONException; must be caught or declared to be thrown
/home/ashutoshsaboo/AndroidStudioProjects/CodeScan/app/src/main/java/io/github/johncipponeri/outpanapi/OutpanObject.java
Error:(44, 31) error: cannot find symbol method getNames(JSONObject)
Note: /home/ashutoshsaboo/AndroidStudioProjects/CodeScan/app/src/main/java/com/ashutoshsaboo/codescan/MainActivity.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Error:Execution failed for task ':app:compileDebugJava'.
> Compilation failed; see the compiler error output for details.
Information:BUILD FAILED
Information:Total time: 28.092 secs
Information:3 errors
Information:0 warnings
Information:See complete output in console
OutpanObject.java的此部分中存在错误-:

public OutpanObject(JSONObject json) {
        this();

        this.gtin = json.getString("gtin");
        this.outpan_url = json.getString("outpan_url");

        if (!json.isNull("name"))
            this.name = json.getString("name");

        if (!json.isNull("attributes")) {
            JSONObject attrObject = json.getJSONObject("attributes");
            String[] attrs = JSONObject.getNames(attrObject);

            for (int a = 0; a < attrs.length; a++)
                this.attributes.put(attrs[a], attrObject.getString(attrs[a]));
        }

        if (!json.isNull("images")) {
            JSONArray imgs = json.getJSONArray("images");
            for (int i = 0; i < imgs.length(); i++)
                this.images.add(imgs.getString(i));
        }

        if (!json.isNull("videos")) {
            JSONArray vids = json.getJSONArray("videos");
            for (int i = 0; i < vids.length(); i++)
                this.videos.add(vids.getString(i));
        }
    }

我是为OutpanAPI创建Java包装器的人

我也面临同样的问题。Android最多只支持Java1.7,您使用的JAR版本是使用Java1.8和1.8Base64类编译的

如果您从下载最新版本的JAR,这个问题就解决了

希望这有帮助

编辑

您也可以按照以下说明操作


您不需要包含自己的
org.json-20131017.jar
,因为它与包装器一起打包。

谢谢您的帮助。可悲的是,我现在也面临着我以前犯过的两个错误。我已经在问题的编辑部分发布了更新的更改。请看一看,并让我知道更新的解决方案!谢谢
while ((numCharsRead = isr.read(charArray)) > 0)
                sb.append(charArray, 0, numCharsRead);

            jsonResult = new JSONObject(sb.toString());
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }