Android StudioはAPIソースに正しくリダイレクトしません。関数をヒットすると、sdk/sourcesツリーから適切なファイルにアクセスする代わりに、.classファイルのバイトコードを逆コンパイルします。 「ダウンロード」および「更新」オプションを押しても何も起こりません。これは、ドキュメント(つまり、var1、var2など)から変数のたてがみのない関数のヘッダーを生成するため、リスナーの実装には特にうっとうしいものです。 complieとターゲットSDKを23に設定しました。SDKツールを再インストールし、カナリアチャンネルからASを更新し、キャッシュを無効にしようとしましたが、何も助けませんでした。 API 21に切り替えましたが、正常に動作します。私は何が欠けていますか?
EDITAPI 23(SDKプラットフォーム、ツール、ドキュメント、ソース)をインストールしたので、投票する場合はコメントを残してください。
編集私のbuild.gradle:
apply plugin: 'com.Android.application'
Android {
compileSdkVersion 23
buildToolsVersion '23.0.2'
defaultConfig {
applicationId "com.myapp.app"
minSdkVersion 10
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.Android.support:appcompat-v7:23.3.0'
compile 'com.Android.support:design:23.3.0'
compile 'com.squareup.picasso:picasso:2.5.2'
compile project(':volley')
compile 'com.jakewharton:butterknife:7.0.1'
}
以下に、同じAPI 23セットと同じ動作を使用した空のプロジェクト(サードパーティライブラリなし)のgradle出力を示します。
Executing tasks: [clean, :app:generateDebugSources, :app:generateDebugAndroidTestSources, :app:mockableAndroidJar, :app:prepareDebugUnitTestDependencies]
Configuration on demand is an incubating feature.
Incremental Java compilation is an incubating feature.
:clean
:app:clean
:app:preBuild UP-TO-DATE
:app:preDebugBuild UP-TO-DATE
:app:checkDebugManifest
:app:preReleaseBuild UP-TO-DATE
:app:prepareComAndroidSupportAnimatedVectorDrawable2330Library
:app:prepareComAndroidSupportAppcompatV72330Library
:app:prepareComAndroidSupportDesign2330Library
:app:prepareComAndroidSupportRecyclerviewV72330Library
:app:prepareComAndroidSupportSupportV42330Library
:app:prepareComAndroidSupportSupportVectorDrawable2330Library
:app:prepareDebugDependencies
:app:compileDebugAidl
:app:compileDebugRenderscript
:app:generateDebugBuildConfig
:app:mergeDebugShaders
:app:compileDebugShaders
:app:generateDebugAssets
:app:mergeDebugAssets
:app:generateDebugResValues UP-TO-DATE
:app:generateDebugResources
:app:mergeDebugResources
:app:processDebugManifest
:app:processDebugResources
:app:generateDebugSources
:app:preDebugAndroidTestBuild UP-TO-DATE
:app:prepareDebugAndroidTestDependencies
:app:compileDebugAndroidTestAidl
:app:processDebugAndroidTestManifest
:app:compileDebugAndroidTestRenderscript
:app:generateDebugAndroidTestBuildConfig
:app:mergeDebugAndroidTestShaders
:app:compileDebugAndroidTestShaders
:app:generateDebugAndroidTestAssets
:app:mergeDebugAndroidTestAssets
:app:generateDebugAndroidTestResValues UP-TO-DATE
:app:generateDebugAndroidTestResources
:app:mergeDebugAndroidTestResources
:app:processDebugAndroidTestResources
:app:generateDebugAndroidTestSources
:app:mockableAndroidJar
:app:preDebugUnitTestBuild UP-TO-DATE
:app:prepareDebugUnitTestDependencies
BUILD SUCCESSFUL
同じ問題に直面している人々のために、解決策は この投稿 Linuxで同じトピックにあります here Windowsで(おかげでAamir Abro)。基本的に、欠落しているAPIレベルのjdk.table.xmlファイルを編集する必要があります。理由はわかりませんが、Android 2.0および2.1 RCでは、<root type="composite" />
に<sourcePath>
が入力されていません。ソースのパス<root type="simple" url="file://D:/Android/sdk/sources/Android-23" />
を更新しましたが、動作します。
Windowsユーザーの場合 ファイルの場所 :C:\ Users {USER_NAME} .AndroidStudio2.0\config\options\jdk.table.xml
Linuxユーザーの場合 ファイルの場所 :〜/ Library/Preferences/AndroidStudioBeta/options/jdk.table.xml
編集:
一部の人々にとって、SDKの場所のリセットは source を助けました。
この問題はAndroid Studio 2.1で修正されたようです。 Android StudioでAndroid SDK Managerセットアップを再実行すると、問題が解決するはずです。
Android Studioで:
Windows:ファイル->設定(ctrl + alt + s)->外観と動作->システム設定-> Android SDK。
Mac:Android Studio->設定(cmd +、)->外観と動作->システム設定-> Android SDK。
Android SDKの場所の右側にあるEditをクリックします。ウィザードの最後までNextをクリックすると、問題が修正されます。
これは別の質問に対して here と回答されました。
Windows 10のAndroid Studio 3.2.1のAPIレベル28で同じ問題が発生しました。更新が機能しませんでした。
Android Studioの再起動後に機能しました。
Android StudioをApi 23に更新するには:
Tools > Android > SDK Manager
、
[SDK Tools
]タブに移動するか、[Launch Sdandalone SDK Manager
]をクリックします。 Android SDK Build-tools 23.0.2
をチェックしてインストールする
更新:
依存関係から削除してください:
compile project(':volley')
それを次のように置き換えます:
compile 'com.Android.volley:volley:1.0.0'