有没有人知道如何从Android Studio中删除项目以尝试从Eclipse重新导出它?
到目前为止,我已尝试删除与项目关联的所有gradle文件,这会在Android Studio尝试打开项目时导致错误.
这些文件不在AndriodStudioProjects文件夹中,因为我只导入了它没有被移动的项目....
基本上我想要完成的是,从Android Studio中的最近项目列表中删除该文件,从Eclipse重新导出它,然后将工作项目导回到Android Studio.
我随机收到此错误,并且不确定为什么Android Studio的磁盘空间不足.
Android Studio系统目录分区上的磁盘空间不足
更新
此应用程序安装在运行10.10.1 w/251GB内部存储器的mac上,操作系统恢复驱动器需要10GB.
我认为问题是,一旦安装了应用程序,它就被放置在较小的分区上.
我将尝试删除此应用程序以及与其关联的所有文件,然后重新安装.希望这能解决问题.
我有依赖于该库的库和项目.库存储在我的私有maven仓库中作为aar文件.库有不同的依赖关系,其中一个是谷歌地图.所以我在build.gradle文件中指定了它,并在lib manifest中设置了meta-data标签
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
Run Code Online (Sandbox Code Playgroud)
当我尝试编译我的项目时出现错误
找不到与给定名称匹配的资源('value'的值为'@ integer/google_play_services_version')
这是常见的错误,但我从来没有看到问题,因为我用aar文件描述.
我的lib build.gradle文件
apply plugin: 'com.android.library'
apply plugin: 'com.jfrog.artifactory'
apply plugin: 'maven-publish'
def packageName = 'com.myapplib'
def libraryVersion = '1.0.3'
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
publishNonDefault true
defaultConfig {
minSdkVersion 15
targetSdkVersion 21
}
buildTypes {
def BOOLEAN = "boolean"
def TRUE = "true"
def FALSE = "false"
def LOG_HTTP_REQUESTS = "LOG_HTTP_REQUESTS"
def LOG_IMAGES_REQUESTS = "LOG_IMAGES_REQUESTS"
def REPORT_CRASHES = "REPORT_CRASHES"
def TRACK_GTM = "TRACK_GTM"
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), …Run Code Online (Sandbox Code Playgroud) 我有一个使用非标准源文件夹布局的项目,如下所示:
sourceSets {
androidTest {
manifest.srcFile "/myproject/androidTest/AndroidManifest.xml"
java {
srcDirs = [
"/myproject/androidTest/java"
]
}
}
}
Run Code Online (Sandbox Code Playgroud)
Android studio 很好地显示了上述源文件夹,并在树中将其标记为“androidTest”。问题现在开始于像 espresso 这样的依赖项在任何测试中都没有解决(在 AS 中找不到类)——尽管它们已经像这样正确声明了:
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
Run Code Online (Sandbox Code Playgroud)
如果我将“androidTestImplementation”更改为“implementation”,Android Studio 将恢复并能够解决依赖项(但我不想将测试依赖项添加到我的实现范围!)
这只是 Android Studio 3.2.1 中的错误还是我的设置中存在错误?
当我运行我的Android应用程序时,我正在调用一种方法来检查应用程序是否在平板电脑上运行:
public boolean isTablet(Context context){
boolean xlarge = ((context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == 4);
boolean large = ((context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK)== Configuration.SCREENLAYOUT_SIZE_MASK);
return(xlarge || large);
}
Run Code Online (Sandbox Code Playgroud)
如果方法返回true(即设备满足其中一个条件)
我通过以下方式将主题设置为Dialog主题:
setTheme(R.style.MyTheme);
Run Code Online (Sandbox Code Playgroud)
哪个MyTheme是从父级继承的主题Theme.Holo.Light.Dialog
这个逻辑工作正常,但它在后台给我一个奇怪的效果.调用意图完全被遮挡,而如果我只是在清单中设置主题,则背景仅略微变灰.
更新 - 添加了代码
private Context mClassContext = this;
@Override
public void onCreate(Bundle savedInstanceState){
if(isTablet(mClassContext)){
setTheme(R.style.MyTheme);
}
super.onCreate(savedInstanceState);
setContentView(R.layout.myLayout);
}
Run Code Online (Sandbox Code Playgroud)
我该如何复制这个?
在Android应用程序中共享数据时,我看到多个应用程序使用底部工作表(例如Google I/O 2015)来指示要执行操作的应用程序,而不是包含用于处理您的意图的应用程序的标准对话框.
例如:
Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("text/plain");
shareIntent.putExtra(Intent.EXTRA_TITLE, "Some title..");
shareIntent.putExtra(Intent.EXTRA_TEXT, "Some text");
startActivity(Intent.createChooser(shareIntent, "Share via.."));
Run Code Online (Sandbox Code Playgroud)
由于操作系统版本选择了选择器的显示,因此无法解决问题.
有任何方法可以更改此代码以获得每个材料设计的Share Bottom表单https://www.google.com/design/spec/components/bottom-sheets.html#bottom-sheets-content
有没有人知道第三方库在旧的API版本上做到这一点?
我找到了https://github.com/soarcn/BottomSheet
但这只能让我从底部工作表创建一个菜单.我想在现实中,我可以查找所有可以执行我正在尝试的操作的应用程序,并在此库上手动添加菜单项,但我希望有一些更简单的东西,因为它不是突破性的功能.
没有人知道是否可以创建自定义ImageButton使用Cast图标,并且添加ActionProvider到这个ImageButton复制MediaRouteActionProvider行为?
在我的应用程序中,我将 ActionBarSherlock 与split 一起使用ActionBar,因此我无法使用 MediaRouter v7 支持库中的内置 MediaRouteActionProvider(至少据我所知),因为这会将太多我的项目推入溢出菜单。
换句话说,如何在不使用 aMenuItem而是使用 的情况下挂钩 MediaRouteActionProvider 的功能ImageButton?
任何帮助或想法将不胜感激!
更新
这可以通过在 XML 中添加 MediaRouteButton 然后将 Selector 附加到按钮来轻松完成。
所以我的实现是这样的:
通过 xml 创建一个 MediaRouteButton:
<android.support.v7.app.MediaRouteButton
android:id="@+id/media_route_button"
android:layout_height="wrap_content"
android:layout_width="wrap_content"/>
Run Code Online (Sandbox Code Playgroud)
然后,当您想使用它时,请创建一个 MediaRouteSelector 注意:CHROME_CAST 是您在以下位置注册应用程序时由开发人员控制台生成的 Id
https://cast.google.com/publish/
并使用 setRouteSelector() 方法将选择器附加到您的 Button
MediaRouteSelector m_mediaRouteSelector = new MediaRouteSelector.Builder()
.addControlCategory(MediaControlIntent.CATEGORY_REMOTE_PLAYBACK)
.addControlCategory(
CastMediaControlIntent.categoryForCast(CHROME_CAST))
.build();
MediaRouteButton m_mediaRouteButton = (MediaRouteButton) findViewById(R.id.media_route_button);
Run Code Online (Sandbox Code Playgroud)
然后就做:
m_mediaRouteButton.setRouteSelector(m_mediaRouteSelector);
Run Code Online (Sandbox Code Playgroud)
对那些使用 ActionBarSherlock* 的人很重要
请注意,要使其与 ActionBarSherlock 一起使用,您将需要创建自己的类,extends MediaRouteButton并专门执行以下操作 …
在针对API 21时,是否可以将App Compat ActionBar拆分?
现在我已经完成了所有活动
android:uiOptions="splitActionBarWhenNarrow"
Run Code Online (Sandbox Code Playgroud)
并有元数据:
<meta-data android:name="android.support.UI_OPTIONS"
android:value="splitActionBarWhenNarrow" />
Run Code Online (Sandbox Code Playgroud)
我的主题Base是Theme.AppCompat
但由于某种原因,这绝对没有影响使操作栏分裂.
似乎只有在其他应用程序手动询问READ_EXTERNAL_STORAGE权限时才能将数据共享到Android M上的其他应用程序,我想知道是否有人知道解决此问题的方法,而无需手动打开我可以共享的所有应用程序并选择存储权限.
例如,我有以下Intent来共享一些数据:
Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("image/*");
shareIntent.putExtra(Intent.EXTRA_SUBJECT, "Some Image Subject");
shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(someFile));
startActivity(Intent.createChooser(shareIntent, "Share via..."));
Run Code Online (Sandbox Code Playgroud)
假设someFile存在且我已经按照http://developer.android.com/training/permissions/requesting.html上建议的运行时权限模型进行操作,并且用户同意允许我的权限,因此文件实际上是在系统.
有没有办法告诉我正在分享的应用程序,我已经将此权限授予我的用户,请您代表我授予此权限?
这不起作用:
shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
Run Code Online (Sandbox Code Playgroud)
根据文件:
int FLAG_GRANT_READ_URI_PERMISSION
如果设置,则此Intent的接收者将被授予对Intent数据中的URI和其ClipData中指定的任何URI执行读取操作的权限.
更有趣的是,如果设置此标记并且我与Gmail共享,则不会检测到该标记,并且Google不会提示请求权限,而是仅捕获异常并且不附加我的文件.
任何帮助,将不胜感激.
有没有人知道或知道android studio中这三个函数如何工作的详细答案(我认为Eclipse,也可能是IntelliJ,具有相同或相似的功能).我已经看到并被告知答案,简要概述了它们的工作原理,据我所知,重建也将清理项目,运行项目运行可用代码的最后构建版本.最后,我只是想深入解释这三个函数如何在彼此之间工作,以及在运行最新的应用程序版本之前是否有必要先运行一个.