我有以下目录结构:
D:\PROJECT
+---javaGradleProject1
+---javaGradleProject2
+---javaGradleProject3
\---AndroidProject
| build.gradle
| settings.gradle
\---AndroidModule
build.gradle
Run Code Online (Sandbox Code Playgroud)
Android模块依赖于与根据AndroidProject在根目录中处于同一级别的所有java gradle项目.
在AndroidProject/settings.gradle中我有:
include ':AndroidModule'
include 'javaGradleProject1'
project(':javaGradleProject1').projectDir = new File(rootDir, '../javaGradleProject1')
include 'javaGradleProject2'
project(':javaGradleProject2').projectDir = new File(rootDir, '../javaGradleProject2')
include 'javaGradleProject2'
project(':javaGradleProject2').projectDir = new File(rootDir, '../javaGradleProject2')
Run Code Online (Sandbox Code Playgroud)
然后在AndroidProject/AndroidModule/build.gradle中我有依赖设置如下:
compile project(':javaGradleProject1')
compile project(':javaGradleProject2')
compile project(':javaGradleProject3')
Run Code Online (Sandbox Code Playgroud)
当我调用时,这种依赖结构完美地工作并构建项目
gradle build
Run Code Online (Sandbox Code Playgroud)
在AndroidProject/build.gradle上.
但是当我尝试将我的IntelliJ与我收到的当前gradle依赖设置同步时
Error: Unable to find module with Gradle path ':javaGradleProject1'
Error: Unable to find module with Gradle path ':javaGradleProject2'
Error: Unable to find module with Gradle path ':javaGradleProject3'
Run Code Online (Sandbox Code Playgroud)
因此,我的项目无法从运行配置运行(它在IDE中根本不编译).我试图通过点击F4和模块依赖关系来手动添加这些依赖项,但在同步之后我的所有更改都被覆盖(实际上,IntelliJ只是将其删除).
我的gradle结构有什么问题吗?
我在IntelliJ …
我正在尝试创建一个类KeyValueDB,它存储与SharedPreferences交互的方法,但是我遇到了一个只是定义类的问题.我想要构造函数做的就是使用正确的文件名存储一个sharedPreferences对象,但我得到一个"无法解析方法"的getSharedPreferences(java.lang.String,int)'
我传递一个字符串和一个int ...我不确定我做错了什么.感谢任何帮助!
package com.farmsoft.lunchguru.utils;
import android.content.Context;
import android.content.SharedPreferences;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.json.JSONException;
/**
* Created by sxs on 4/28/2014.
*/
public class KeyValueDB {
private SharedPreferences sharedPreferences;
public KeyValueDB(String prefName) {
sharedPreferences = getSharedPreferences(prefName, Context.MODE_PRIVATE);
}
Run Code Online (Sandbox Code Playgroud) 我有一个中心问题引起的许多问题:Android Studio无法识别导入。
例如,在我的“ ActivityAbout”类中,我具有以下导入语句:
import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.view.View;
import android.support.design.widget.NavigationView;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.view.animation.AnimationUtils;
import android.widget.ViewFlipper;
Run Code Online (Sandbox Code Playgroud)
但是,在IDE中(以第一个import语句为例),import android.content.它显示为灰色,当我将鼠标悬停在其上时,它显示为“未使用的导入语句”,该Intent部件显示为红色,当将鼠标悬停在其上时,它表示“无法解析符号意图。” 我的每个import语句都会发生这种情况,第一部分显示为灰色,最后一部分显示为红色。
现在,这在我的代码中提供了许多问题,因为与那些导入语句相关的任何内容都显示为红色,并且将鼠标悬停在其上时,出现消息“无法解析符号____”
这就是问题所在-我的应用仍然可以编译并在手机上打开后运行。
我想我的主要问题是令人烦恼的是,自动导入也不起作用。(我已在设置中选中“显示导入弹出窗口”,这是我为其他人遇到的自动导入问题无法解决的答案)。我的另一个担心是,这将使我的应用不符合在Play商店中发布的资格。我仍在研究发布过程,所以我不知道这是否确实是一个问题。
我的问题(如果没有人解决此问题的答案)是:这是IDE本身还是代码问题?
编辑:添加了其他导入语句
在获得一台新计算机后,我尝试从备份中恢复以前正在运行的Android Studio项目几天后,我有一个非常讨厌的问题.
我有"不能解析符号"语法高亮的问题与Android的库如类android.support.v7.app,android.support.v4.app和谷歌播放服务,这是我列为依赖关系.但是,该项目构建良好,我可以在手机上运行应用程序没有问题.
我已经验证了SDK安装下是否存在这些jar文件 - 例如"\ sdk\extras\android\m2repository\com\android\support\appcompat-v7\23.0.1".
我的问题非常类似于以下帖子中报道的问题:
我已经尝试了各种stackoverflow讨论中提供的所有解决方案(即同步Gradle项目,无效缓存/重启,清理/重建,删除gradle生成的文件(.gradle,build,.idea目录等),降级到较低的API和升级等但是,没有方法是有帮助的.
我使用Android Studio 1.3.2和API 23.所有构建工具,支持库等都是最新的(尝试使用v22.+和v23.+库).
如果您有任何其他建议,请帮忙!
从我的build.gradle中提取:
apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion '23.0.1'
defaultConfig {
applicationId "com.myapp.fun"
minSdkVersion 22
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')
compile 'com.android.support:support-v4:22.+'
compile 'com.android.support:appcompat-v7:22.+'
}
Run Code Online (Sandbox Code Playgroud)
问题的屏幕截图也可以在下面找到.我认为Android Studio无法导入依赖库以进行语法突出显示,尽管编译器能够包含它们并成功构建.
java android intellij-idea android-studio android-gradle-plugin
我Android Studio今天(2018年3月27日)已更新至3.1稳定版.
我有一个旧项目.使用新的工作室版本,它可以构建成功并安装应用程序Emulator,但是IDE,活动文件显示
无法解析器错误
gradle文件app模块
项目级gradle文件
我正在尝试调试Android Studio关于java SDK文件夹中文件的语法突出显示和定义的行为.该项目构建正常,但Android Studio本身在编辑器中不会与此一致.
我已经详细阅读了以下链接中的响应,并没有解决问题: Android Studio说"无法解析符号"但项目编译
我已经尝试了所有这些解决方案,包括"无效和重新启动",清理,重建,检查sdk目录是否正确,检查所有依赖项是否存在,重新同步gradle,将compileSdkVersion更改为minSdkVersion,它仍然拒绝遵循预期行为.
Android工作室突出显示了一些红色的方法和符号,当我按下它们的CTRL + B时,它们不会跟随它们(转到定义).但是,当我只是打开文件时,方法和符号就可以了.
例如,对于sdk\sources\android-14\...在RingtonePreference类中...android\preference\RingtonePreference.java,有一行:
PreferenceFragment owningFragment = getPreferenceManager().getFragment();
Run Code Online (Sandbox Code Playgroud)
该方法getFragment()以红色突出显示"无法解析方法".
然后我点击CTRL + B getPreferenceManager(),跳转到:
public PreferenceManager getPreferenceManager() {
return mPreferenceManager;
}
Run Code Online (Sandbox Code Playgroud)
然后我按下CTRL + B PreferenceManager,跳转到文件...android\preference\PreferenceManager.java.在该文件中有以下内容:
PreferenceFragment getFragment() {
return mFragment;
}
Run Code Online (Sandbox Code Playgroud)
除了我之外,Android Studio需要按照预期运行.我在这做错了什么?
作为参考,这是我的项目使用RingtoneManager的方式,但是没有"无法解决"Android Studio红色高亮显示:
import android.content.Context;
import android.content.Intent;
import android.media.RingtoneManager;
import android.net.Uri;
import android.preference.RingtonePreference;
import android.util.AttributeSet;
public class ExtRingtonePreference extends RingtonePreference {
private String mInitialRingtone;
public ExtRingtonePreference(Context context, AttributeSet attrs, int defStyleAttr) …Run Code Online (Sandbox Code Playgroud) 我在Gradle依赖项中将Google Play服务添加到了我的Android项目中.
dependencies {
compile 'com.google.android.gms:play-services:4.1.32'
}
Run Code Online (Sandbox Code Playgroud)
问题是Android Studio无法识别此依赖项.我尝试使用gradle文件同步项目,但仍然找不到类.
我可以从Google Play服务手动导入一些类,并在我的代码中使用它们,它将编译没有任何问题.
如果我从maven下载导入jar文件arr一切正常.
我尝试了几个库,它总是一样的.我使用的是Android Studio 0.4.2.
我不知道发生了什么。我正在使用 Android Studio,并且创建了一个新的空白项目。
我输入 import an 并且Annotation如果我尝试编辑现有的 4 个导入,它会显示唯一的内容,它会变为红色,然后将所有内容切换回那 4 个。
导入 android.os.Bundle; 导入 android.support.v7.app.ActionBarActivity; 导入 android.view.Menu; 导入 android.view.MenuItem;
我不知道发生了什么。

我的问题与在其他项目中使用.AAR文件的问题有同样的问题.但我想补充更多细节.因此,新的问题.
我也知道这个Android Studio的解决方案无法解析导入的AAR模块中的符号,但答案并不是我想要的.
我可以将我的AAR文件添加到我的项目中,无需将其添加到libs /文件夹中或添加为新的AAR模块.当AAR作者提供更新的AAR时会出现问题(因为他们在公共API中更改了某些内容,即在其中一种旧方法中添加新参数).
Android Studio似乎无法接收更改.在旧库中,我有这个方法调用:
library.showText("hello");
Run Code Online (Sandbox Code Playgroud)
作者发布了一个新API,并对同一方法进行了更新,应该被称为:
library.showText("hello", 5000); // added timeout param
Run Code Online (Sandbox Code Playgroud)
当我按CTRL +单击该方法时,它将我带到具有位于C:\ Users\MyUser\.gradle\caches\transforms-1\files-1.1\library.aar\...\old中的方法的旧类.类.我认为这是为什么我得到"无法解决符号"错误的问题.
我该如何解决?