如何为我所有的Android项目设置gradle属性? 我有不同的android projetcs,但是每当我更改project文件夹中的gradel.properties文件时,它只会影响该项目。 而且我无法在根目录的.gradle文件夹中找到gradle.properties。 如何为所有项目设置通用属性,这样我就不必每次都更改。
答案 0 :(得分:2)
Gradle在gradle.properties
目录的GRADLE_USER_HOME
文件中支持系统范围的属性,该文件默认为您的主目录中的名为.gradle
的文件夹。 C:\Users\<user>\.gradle
在Windows上。
这些系统特定的属性可能会覆盖项目特定的属性,因此它们只能用于指定本地计算机的用户名和密码。
此全局gradle.properties
默认情况下可能不存在,但是即使不存在,您也可以创建一个全局init.d
并将其使用,并且这些属性将在您的构建脚本中提供。
如果全局设置需要的逻辑不仅仅是普通属性,则可以使用初始化脚本,该脚本可以放置在同一位置(或 RemoveHandler cbxFreq.CheckedChanged, AddressOf cbxFreq_CheckedChanged ' May be neater way to do this!!!
RemoveHandler cbxCap.CheckedChanged, AddressOf cbxCap_CheckedChanged
RemoveHandler cbxInd.CheckedChanged, AddressOf cbxInd_CheckedChanged
RemoveHandler cbxImp.CheckedChanged, AddressOf cbxImp_CheckedChanged
For Each ctrl As Control In container.Controls
DirectCast(ctrl, CheckBox).Checked = False
Next
AddHandler cbxFreq.CheckedChanged, AddressOf cbxFreq_CheckedChanged
AddHandler cbxCap.CheckedChanged, AddressOf cbxCap_CheckedChanged
AddHandler cbxInd.CheckedChanged, AddressOf cbxInd_CheckedChanged
AddHandler cbxImp.CheckedChanged, AddressOf cbxImp_CheckedChanged
End Sub
For Each ctrl In Me.Controls
If TypeOf ctrl Is Forms.TextBox Or TypeOf ctrl Is Forms.Label Then
ctrl.Visible = False
End If
Next
子目录)。
答案 1 :(得分:1)
对于MacOS用户:
public partial class AddingPage : ContentPage
{
AdLogEntry adLogEntry = new AdLogEntry();
//CameraService cameraService = new CameraService();
public byte[] imageAsBytes;
public string pathLabel;
private const int MaxColumns = 3;
private int _currentRow = 0;
private int _currentColumn = 0;
public AddingPage()
{
InitializeComponent();
}
protected override async void OnAppearing()
{
base.OnAppearing();
await MainProgressBar.ProgressTo(0, 250, Easing.Linear); ;
}
private async void NextStep_Clicked(object sender, EventArgs e)
{
await Navigation.PushAsync(new Informations());
}
private async void TakePicture_Clicked(object sender, EventArgs e)
{
await TakePicture();
}
private async Task TakePicture()
{
MediaFile file = null;
await CrossMedia.Current.Initialize();
if (!CrossMedia.Current.IsCameraAvailable || !CrossMedia.Current.IsTakePhotoSupported)
{
await DisplayAlert("Nemáme přístup", "Nelze nalézt kameru", "OK");
return;
}
var imageSource = await DisplayActionSheet("Foto", "Cancel", null, new string[] { "Pořídit novou fotku", "Nahrát foto z galerie" });
var photoName = Guid.NewGuid().ToString() + ".jpg";
switch (imageSource)
{
case "Pořídit novou fotku":
file = await CrossMedia.Current.TakePhotoAsync(new StoreCameraMediaOptions
{
SaveToAlbum = true,
Directory = "Photos",
Name = photoName
});
//Get the public album path
var aPpath = file.AlbumPath;
//Get private path
var path = file.Path;
break;
case "Nahrát foto z galerie":
file = await CrossMedia.Current.PickPhotoAsync();
//Directory.GetFiles( "Photos");
break;
default:
break;
}
if (file == null)
return;
// Photo => Grid
_currentColumn++;
if (_currentColumn > MaxColumns - 0)
{
_currentColumn++;
_currentRow++;
// Add a new row definition by copying the first row.
ImageGridContainer.RowDefinitions.Add(ImageGridContainer.RowDefinitions[0]);
}
var newImage = new Image()
{
Source = ImageSource.FromFile(file.Path),
VerticalOptions = LayoutOptions.FillAndExpand,
HorizontalOptions = LayoutOptions.FillAndExpand,
Aspect = Aspect.AspectFill,
Scale = 0
};
ImageGridContainer.Children.Add(newImage, _currentColumn, _currentRow);
await Task.Delay(250);
await newImage.ScaleTo(1, 250, Easing.SpringOut);
}
cd ~/.gradle
检查ls
是否已经存在gradle.properties
。答案 2 :(得分:0)
文档:
项目属性从父项目继承到子项目。
根项目
ext{
supportLibVersion = '25.3.1'
//supportLib
supportLib = "com.android.support:support-v4:$supportLibVersion"
}
子项目:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
//supportLib
compile rootProject.ext.supportLib
}
答案 3 :(得分:0)
这是答案
此全局gradle.properties默认情况下可能不存在,但即使不存在,您也可以创建一个,它将被使用,并且这些属性将在您的构建脚本中可用。
在C:\ Users \ user-name.gradle中创建一个,并将其命名为gradle.properties
,不带任何扩展名。
答案 4 :(得分:0)
根据Gradle documentation,您可以通过环境变量设置项目属性。您需要做的就是在环境变量前加上ORG_GRADLE_PROJECT
,Android Studio会将其作为所有Android(和Gradle)项目的项目属性加载。示例:
echo 'export ORG_GRADLE_PROJECT_foo=bar' >> ~/.zshenv
您可以在build.gradle文件中将其作为项目属性来访问:
def fooProperty = project.foo
println("Foo property is $fooProperty") // prints bar
注意:请确保在添加环境变量后重新启动Android Studio,以便正确加载属性。