我有一个奇怪的问题,突然出现在android studio中。我创建了一个新的cpp文件,并将其包含在Android.mk中。然后,我同步了项目。但是,android studio仍然抱怨该文件不是项目的一部分,我需要同步,但整个项目都可以成功构建。
同样,如果我从Android.mk中删除了它没有抱怨的其他较旧的文件之一,并且重新同步,然后尝试构建项目,正如预期的那样,构建失败,但是android studio并不抱怨该文件不再是该项目的一部分。
因此,突然之间,Android Studio编辑器无法正确识别哪些文件已同步并且是项目的一部分,但是在编译过程中,所有操作均按预期进行。
有人知道如何解决这个烦人的问题吗?我尝试过清理项目,使缓存/重启无效,以及更新Android Studio时没有出现运气(AS版本3.4)。
答案 0 :(得分:1)
我有类似的问题。像你一样,我已经尝试了一切。
可以帮助我的一件事是:我更改了NDK版本。我进行了编译,然后出现了编译错误(没关系,因为它毕竟是NDK的错误版本),然后我恢复了原始的NDK。看来可以解决问题,但是又回来了。
我的解决方案是将Android Studio重置为出厂设置。如果您使用的是Linux,则可以先删除以下文件夹:
rm -rf ~/.android
rm -rf ~/.AndroidStudio3.4
然后,您下载并运行Android Studio,而不从任何地方导入任何内容。
我怀疑问题是由我安装的其中一个插件引起的。
最好不时备份这两个文件夹,并在必要时从那里重新加载它们。
编辑:在添加更多.cpp文件后,上述解决方案后,我的问题似乎仍然存在。看到之后,我搜索了弹出窗口的来源。因此,从ndk-build推送了“此文件不是项目的一部分...”弹出窗口。 (类名称:NewCppSourceNotificationProvider-StaleCppProjectNotificationPanel)。我尝试过的,到目前为止有效的;我将Android Studio 3.5 Canary13与NDK版本r19c(稳定版)一起使用。希望对您有帮助。
答案 1 :(得分:1)
export class AssignmentsPage implements OnInit {
// assignments: any[];
// assignments$: Observable<Assignments[]>;
assignments: any[];
agentid: any;
agent: Agents;
size: number;
constructor(private route: ActivatedRoute, private router: Router,
private toastController: ToastController,
private assignServises: DataService,
private data: AssignmentsService,
private afs: AngularFirestore) {
if (localStorage.getItem('isLoggedIn') === null) {
this.router.navigateByUrl('/login');
} else {
this.agent = JSON.parse(localStorage.getItem('agent'));
const id = localStorage.getItem('agent_id');
this.agentid = this.agent.id;
console.log('id:' + id + ' of ' + this.agent.lastname );
// this.assignments = data.getAll();
/* this.assignments$ = data.getAssignmentsByAgentId(id).
pipe(
tap(assignmentz => {
if (assignmentz) {
console.log('success: ' + assignmentz.length);
} else {
console.log('noo success: ' + assignmentz.length);
}
}));
*/
assignServises.getByColumn('assignments', 'agent_id', id)
.subscribe(assgns => {
this.assignments = assgns;
this.size = assgns.length;
console.log('assignmt: ' + assgns.map(assigmnt => assigmnt.status));
});
}
}
<ion-header>
<ion-toolbar>
<ion-title>{{agent.lastname}}'s My tasks</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
<ion-badge>{{size}} assignment(s)</ion-badge>
<ion-list *ngFor="let assignment of assignments$">
<ion-item>
<ion-card>
<h3>Since: {{assignment.assigned_when}}</h3>
<ion-label>Status: {{assignment.status}} </ion-label>
</ion-card>
</ion-item>
</ion-list>
Android Studio 3.5 RC 2
更新至:
-gradle-4.10-all
-com.android.tools.build:gradle:3.2.1
从项目根目录运行(请注意,此操作必须首先完成):
gradle-5.5.1-all
在根com.android.tools.build:gradle:3.4.2
文件中:
./gradlew wrapper --gradle-version 5.5.1 --distribution-type all
答案 2 :(得分:1)
Android Studio 4.0.1和当前的最新gradle(6.1.1?)存在相同的问题。我退出Android Studio并删除项目主目录中的.gradle和.idea文件夹,再删除了.cxx和受影响的模块目录中的build目录后,问题消失了。我不确定哪个真正有用,但是很可能删除.grade和/或.idea
答案 3 :(得分:1)
答案 4 :(得分:0)
我有类似的问题,可能是gradle版本和gradle插件版本的兼容性问题,因为我的解决方案正在替换旧配置
// build.gradle
classpath 'com.android.tools.build:gradle:3.2.1'
...
// gradle-wrapper.properties
distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
通过将gradle版本从4.6
更改为4.10.1
,添加了以下新版本。
// build.gradle
classpath 'com.android.tools.build:gradle:3.2.1'
...
// gradle-wrapper.properties
distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip
之后,Android Studio可以在项目中索引和跟踪我的新cpp文件。
答案 5 :(得分:0)
通过更新我的'com.android.tools.build:gradle'
修复此问题