2014-01-08 19 views
1

不工作我試圖使用的SoundCloud的API,在測試的Android項目都可以在GitHub(here)。我試圖使用IntelliJ IDEA 13和Eclipse,但問題不會改變。的SoundCloud API中的Android項目

我有一個簡單的ActivityWebView如在Facebook連接示例here中指定的。 >Project Settings - - >Modules - >my-module - >Dependencies - >+

在IntelliJ IDEA的我已經通過Project Structure加入我的外部JAR文件。我還在我的gradle.build文件中添加了依賴項compile 'com.soundcloud:java-api-wrapper:1.3.1

在Eclipse中,我添加了它PropertiesJava Build PathLibrariesAdd External JAR

我在編譯過程中沒有錯誤,但是當我從Genymotion VM啓動應用程序崩潰報告中的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構建路徑中添加的罐子。

+0

謝謝。這在Eclipse上工作,但不在InelliJ Idea中,因爲我不知道該在哪裏找到該選項。你知道如何修改'gradle.build'文件來使這個應用程序也能在這個IDE中工作嗎? –

0

從Android Studio中轉到文件>項目結構>應用程序>相關性,然後點擊+圖標,然後選擇文件相關性,並添加您的.jar文件,然後單擊確定。

Gradle應該同步並更新您的文件。