2014-01-08 2 views
1

테스트 Android 프로젝트에서 GitHub (here)에서 사용할 수있는 SoundCloud API를 사용하려고합니다. IntelliJ IDEA 13 및 Eclipse를 사용하려고했지만 문제가 변경되지 않았습니다.AndroidCloud에서 SoundCloud API가 작동하지 않습니다.

Facebook 연결 예제 here에 지정된대로 WebView의 간단한 Activity이 있습니다. >Project Settings - ->Modules ->my-module ->Dependencies ->+

는 인 IntelliJ 아이디어에서 나는 Project Structure를 통해 내 외부 JAR 파일을 추가했습니다. 나는 또한 내 gradle.build 파일에 compile 'com.soundcloud:java-api-wrapper:1.3.1 종속성을 추가했습니다.

Eclipse에서 나는 Properties ->Java Build Path ->Libraries ->Add External JAR을 추가했습니다.

컴파일하는 동안 오류가 발생하지 않았지만 Genymotion VM에서 App을 실행하면 LogCat에서 다음 오류를보고하는 데 오류가 발생합니다.

01-08 17:22:40.761: E/AndroidRuntime(9509): FATAL EXCEPTION: main 
01-08 17:22:40.761: E/AndroidRuntime(9509): java.lang.NoClassDefFoundError: com.soundcloud.api.ApiWrapper 
01-08 17:22:40.761: E/AndroidRuntime(9509):  at com.example.soundcloudexample.activities.MainActivity.onCreate(MainActivity.java:22) 
01-08 17:22:40.761: E/AndroidRuntime(9509):  at android.app.Activity.performCreate(Activity.java:5133) 
01-08 17:22:40.761: E/AndroidRuntime(9509):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
01-08 17:22:40.761: E/AndroidRuntime(9509):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175) 
01-08 17:22:40.761: E/AndroidRuntime(9509):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261) 
01-08 17:22:40.761: E/AndroidRuntime(9509):  at android.app.ActivityThread.access$600(ActivityThread.java:141) 
01-08 17:22:40.761: E/AndroidRuntime(9509):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256) 
01-08 17:22:40.761: E/AndroidRuntime(9509):  at android.os.Handler.dispatchMessage(Handler.java:99) 
01-08 17:22:40.761: E/AndroidRuntime(9509):  at android.os.Looper.loop(Looper.java:137) 
01-08 17:22:40.761: E/AndroidRuntime(9509):  at android.app.ActivityThread.main(ActivityThread.java:5103) 
01-08 17:22:40.761: E/AndroidRuntime(9509):  at java.lang.reflect.Method.invokeNative(Native Method) 
01-08 17:22:40.761: E/AndroidRuntime(9509):  at java.lang.reflect.Method.invoke(Method.java:525) 
01-08 17:22:40.761: E/AndroidRuntime(9509):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) 
01-08 17:22:40.761: E/AndroidRuntime(9509):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
01-08 17:22:40.761: E/AndroidRuntime(9509):  at dalvik.system.NativeStart.main(Native Method) 

Activity 다음 코드

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    final ApiWrapper wrapper = new ApiWrapper(
      SoundCloudConf.CLIENT_ID, 
      SoundCloudConf.CLIENT_SECRET, 
      SoundCloudConf.REDIRECT_URI, 
      null /* token */); 
    WebView webView = (WebView) findViewById(R.id.webview); 
    webView.setWebViewClient(new WebViewClient() { 
     @Override 
     public boolean shouldOverrideUrlLoading(final WebView view, String url) { 
       if (url.startsWith(SoundCloudConf.REDIRECT_URI.toString())) { 
        Uri result = Uri.parse(url); 
        String error = result.getQueryParameter("error"); 
        String code = result.getQueryParameter("code"); 
       } 
       return true; 
     } 
    }); 

    webView.loadUrl(wrapper.authorizationCodeUrl(Endpoints.FACEBOOK_CONNECT, Token.SCOPE_NON_EXPIRING).toString()); 
} 

내가 진짜 장치도 시도와는 API 클래스가없는 것 같다에게 있습니다. 누군가 그것을 해결할 수 있습니까?

답변

1

Java 빌드 경로에 추가 된 jar를 정렬하고 내 보냅니다.

+0

감사합니다. 이클립스에서는 작동하지만 InelliJ Idea에서는 작동하지 않습니다. 옵션을 어디에서 찾을 수 있을지 모르겠습니다. 이 IDE에서도 앱을 작동시키기 위해'gradle.build' 파일을 어떻게 수정해야하는지 알고 있습니까? –

0

Android Studio에서 파일> 프로젝트 구조> 앱> 종속성으로 이동 한 다음 + 아이콘을 클릭하고 파일 종속성을 선택하고 .jar 파일을 추가 한 다음 확인을 클릭합니다.

그러면 Gradle은 파일을 동기화하고 업데이트해야합니다.

관련 문제