我刚刚在android中进行了本机开发.我成功地将我的AndroidStudio 2.2.2准备好用于本机开发
我还构建了示例hello-jni项目
我想要实现的目标
我正在尝试使用用c ++设计的现有库(我将提供静态库.a扩展名或.so文件)
关于本土发展的几点混乱
1)我应该使用现有c ++库的.cpp和.h文件而不是.a或.so文件吗?
2)我是否需要制作CMakeLists.text:据我搜索我的.a文件不是使用ndk-build生成的,所以我需要制作它.
如果我使用.cpp和.h文件,我应该制作Android.mk和Application.mk
CMakeLists.text是否将我新开发的android项目编译为库或我现有的.a文件?
3)我在哪里将.a文件放在我的项目中.它在jni文件夹下吗?
4)我的java类文件是否应该定义具有与c ++文件中实现的关键字本机相同的方法(例如:在c ++文件方法名称getData()中,java类应该包含公共本机getData())
下面是我在 Django 项目中的 models.py 文件。每当我尝试运行该项目时,都会出现以下错误。请协助,因为我刚刚开始使用 django 我尝试按照错误的建议更改外部列的名称,但无济于事。那里的很多答案都建议对 related_name 进行更改,这在我的情况下不存在。
来自控制台的错误
app_fin.TblLockerCoutCin.jewel_item:(fields.E304)“TblLockerCoutCin.jewel_item”的反向访问器与“TblLockerCoutCin.jewel_item_code”的反向访问器冲突。提示:在“TblLockerCoutCin.jewel_item”或“TblLockerCoutCin.jewel_item_code”的定义中添加或更改related_name 参数。app_fin.TblLockerCoutCin.jewel_item:(fields.E304)“TblLockerCoutCin.jewel_item”的反向访问器与“TblLockerCoutCin.jewel_item_name”的反向访问器冲突。提示:向“TblLockerCoutCin.jewel_item”或“TblLockerCoutCin.jewel_item_name”的定义添加或更改related_name 参数。app_fin.TblLockerCoutCin.jewel_item_code: (fields.E304) 'TblLockerCoutCin.jewel_item_code' 的反向访问器 与“TblLockerCoutCin.jewel_item”的反向访问器发生冲突。提示:向“TblLockerCoutCin.jewel_item_code”或“TblLockerCoutCin.jewel_item”的定义添加或更改related_name 参数。app_fin.TblLockerCoutCin.jewel_item_code:(fields.E304)“TblLockerCoutCin.jewel_item_code”的反向访问器与“TblLockerCoutCin.jewel_item_name”的反向访问器冲突。提示:在“TblLockerCoutCin.jewel_item_code”或“TblLockerCoutCin.jewel_item_name”的定义中添加或更改related_name 参数。app_fin.TblLockerCoutCin.jewel_item_name:(fields.E304)“TblLockerCoutCin.jewel_item_name”的反向访问器与“TblLockerCoutCin.jewel_item”的反向访问器冲突。暗示:向“TblLockerCoutCin.jewel_item_name”或“TblLockerCoutCin.jewel_item”的定义添加或更改related_name 参数。app_fin.TblLockerCoutCin.jewel_item_name:(fields.E304)“TblLockerCoutCin.jewel_item_name”的反向访问器与“TblLockerCoutCin.jewel_item_code”的反向访问器冲突。提示:向“TblLockerCoutCin.jewel_item_name”或“TblLockerCoutCin.jewel_item_code”的定义添加或更改related_name 参数。
模型.py
from django.db import models
class TblJewelleryInventory(models.Model):
id = models.IntegerField(primary_key=True)
item_code = models.CharField(unique=True, max_length=5, blank=True, null=True)
item_name = models.CharField(max_length=250, blank=True, null=True)
base_locker_location = models.CharField(max_length=45, blank=True, null=True)
updated_at = models.DateTimeField()
created_at = models.DateTimeField()
def __str__(self):
return self.name
class Meta:
managed = False
db_table = 'tbl_jewellery_inventory'
class TblJewelleryInventoryLogs(models.Model):
id = models.IntegerField(primary_key=True)
item_id = models.IntegerField()
item_code = models.CharField(unique=True, max_length=5, blank=True, null=True)
item_name …Run Code Online (Sandbox Code Playgroud) 我一直在尝试为 iOS 上的通知实现自定义声音。
根据此处示例 3 中的 Apple 文档。我们需要做的就是确保推送通知负载应该是这样的:
{
"aps" : {
"alert" : "You got your emails.",
"badge" : 9,
"sound" : "bingbong.aiff"
}
}
Run Code Online (Sandbox Code Playgroud)
并且 bingbong.aiff 必须放在应用程序包中。
此外,如果应用程序处于活动状态,我被建议添加以下代码:
- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo
{
if (application.applicationState == UIApplicationStateActive)
{
NSString *path = [[NSBundle mainBundle] pathForResource:@"bingbong" ofType:@"aiff"];
theAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path]error:NULL];
theAudio.delegate = self;
[theAudio play];
}
}
Run Code Online (Sandbox Code Playgroud)
"bingbong.aiff" 被放置在 "SupportingFiles"
我仍然没有获得远程通知的自定义声音。
我已经完成了与此类似的其他 SO 问题,但这些问题与我正在做的没有什么不同。
最近将 Firebase-Firestore 添加到我的 android 项目中,并在构建时开始获取对 protobuf 中的类的重复引用。
\n\nbuild.gradle
// Top-level build file where you can add configuration options common to all\n// sub-projects/modules.\n\nbuildscript {\n\n ext.protobufVersion = \'0.8.6\'\n\n repositories {\n google()\n jcenter()\n maven { url \'https://maven.fabric.io/public\' }\n maven { url "https://jcenter.bintray.com" }\n maven { url "https://jitpack.io" }\n }\n dependencies {\n classpath \'com.android.tools.build:gradle:3.5.3\'\n classpath \'io.fabric.tools:gradle:1.31.2\'\n classpath \'com.google.gms:google-services:4.3.3\'\n classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.41"\n classpath \'com.akaita.android:easylauncher:1.3.1\'\n classpath "com.google.protobuf:protobuf-gradle-plugin:$protobufVersion"\n }\n}\n\napply plugin: \'com.android.application\'\napply plugin: \'io.fabric\'\napply plugin: \'com.google.gms.google-services\'\napply plugin: \'kotlin-android\'\napply plugin: \'kotlin-kapt\'\napply plugin: \'com.akaita.android.easylauncher\'\napply plugin: \'com.google.protobuf\'\n\nrepositories {\n google()\n jcenter()\n …Run Code Online (Sandbox Code Playgroud) android ×2
.a ×1
.so ×1
android-ndk ×1
django ×1
firebase ×1
gradle ×1
ios ×1
java ×1
objective-c ×1
python ×1
python-3.x ×1