Android Studio Part3

■ このスレッドは過去ログ倉庫に格納されています
2019/01/14(月) 22:52:23.09ID:GZjDNbX9
前スレ
Android Studio 2(c)2ch.net
https://mevius.5ch.net/test/read.cgi/tech/1464941420/

ダウンロード
http://developer.android.com/sdk/index.html

ショートカット一覧
http://www.jetbrains.com/idea/docs/IntelliJIDEA_ReferenceCard.pdf

概要知りたい人向けリリースニュース
http://japan.cnet.com/news/service/35057619/
http://www.itmedia.co.jp/mobile/articles/1412/09/news059.html
http://www.forest.impress.co.jp/docs/news/20141210_679759.html
2020/01/03(金) 15:45:30.89ID:cOnz5nIA
>>548
マジレスすると、>>516あたりからの書き込みを見てできなければ、今は無理
2020/01/03(金) 15:47:26.55ID:jqTCrvbk
ARMのAVDなら動くんじゃねーの?
2020/01/03(金) 15:54:37.83ID:yAHm62m5
「公式」でなけりゃなんとでもなるとは思う
実機でデバッグしてもいいわけだし
552デフォルトの名無しさん
垢版 |
2020/01/03(金) 15:57:02.37ID:afBzhWpn
ARMのAVDは正直オススメしない
それなら非公式のエミュ使ったほうがマシ
2020/01/03(金) 17:19:30.76ID:a2ISfg5e
>>543
うーーんとオープンな環境を標榜するGoogleのAndroidは2年位前にGoogleに
みかじめ料を払って認証をもらっている端末以外はPlayへのアクセスを禁止
することにしたので、エミュレータは当然認証外なのではじきますって話じゃ
ないかなw
一応カスROMとかいきなり完全アク禁にすると叩かれるので、Googleアカウント上で
端末の登録をすると使えるようにしてあるらしいけどエミュレータも登録できるのかは
わからないです
2020/01/04(土) 01:21:43.00ID:C22fQvy2
LinuxならばRyzenでもAVD動くんじゃないの?
やったことないから知らんけど
2020/01/05(日) 19:53:35.91ID:f7tJViWY
intelならhageでもええんとちゃうの?
2020/01/06(月) 12:49:24.88ID:7UQLDAjx
エディタで全部閉じるにした後、特定のメソッドだけ開けて編集する時に
その中でfor や if で部分的に閉じてるのをいちいち手作業で何個も開かないといけない
メソッドをまとめて開くメニューを付けて欲しいものだ
ほんと基本的なところも面倒くさいエディタだなあ
2020/01/06(月) 17:29:37.75ID:52lhGqg4
>>556
https://www.jetbrains.com/help/idea/working-with-source-code.html#code_folding
558デフォルトの名無しさん
垢版 |
2020/01/07(火) 07:59:16.63ID:Wo2IACrF
>>556
わかんないなら素直に質問すれば?
2020/01/07(火) 08:47:43.35ID:Lpw28wq4
こんな面倒くさい開発者は淘汰されればいいから質問しなくていい
2020/01/07(火) 09:41:06.80ID:hYyCN2HP
貴殿は常に不機嫌だな
2020/01/07(火) 09:58:20.79ID:SGE5cE5V
さほどでもござらん
562デフォルトの名無しさん
垢版 |
2020/01/08(水) 12:49:47.73ID:s6OH+wbi
今日から Android Studio 始めました!
なんか最初はやたらと関連ファイルのダウンロードを繰り返してて、
一番最初のサンプルプログラムは解説本どおりにやってるのに build で失敗してるのはなして?
とか悩んでいたら、知らないうちにbuildやり直してて成功してるとか、
なんか前世紀のWindowsアプリの開発とは別世界の開発環境になってた・・・。

で、VmwarePlayer12 にWin10inseiderPrevをゲストで載せてその上で動かしてるのだけれど
他にも同じようにやってる人が居て、勉強が捗るようなヒントとかあれば教えてください。

やってから気づいたけれどゲスト側にCPU使用率を8割割いて、
ホスト側では残りで快適にネットサーフィンできるのはいいかもね、みたいな。
563デフォルトの名無しさん
垢版 |
2020/01/08(水) 12:50:04.30ID:s6OH+wbi
上の方でちらっと出ていたけれど、これから始める場合は API28 を選択しておけばいいのでしょうか?
2020/01/10(金) 08:38:53.51ID:z1j45fLZ
スティックPCやらUMPCでメモリ4GBのものが出てきたから
出先でもどこでもASを使える環境が整いつつあるな
2020/01/10(金) 15:46:34.52ID:+1tNNn/Y
そういうのは荷物が許すならNUCもいいよメモリーも32まで乗るしノーストレス
2020/01/10(金) 20:50:16.55ID:IjjLKZ0+
メモリ16GBの13inch/1.1kgのノートPC 毎日持ち歩いてるわ。
2020/01/11(土) 14:09:26.64ID:zGnb4TH/
レノボがCESで発表した折りたたみのやつあれいいな
2020/01/11(土) 16:09:10.59ID:4DPLwU6K
メモリ16GBあると快適すぎる
8GBだとメモリの空き容量が少ない
2020/01/12(日) 12:42:58.28ID:zsloGdjI
ストア公開したけどダブルクォーテーションで完全一致させないと全くヒットしない・・・
ひらがな+カタカナの組み合わせはいかんの?
2020/01/12(日) 13:39:55.06ID:Df7Z4v3W
残念だがそれが現実
2020/01/12(日) 19:03:35.93ID:Q1EV5M4W
アンドロイドアプリ、誰でも3000円ぐらいで世界にアプリを発信できる!
ただしその実態は「砂漠に看板を立てるようなもの」
何もない砂漠にインフラ整備して歓楽街を作るぐらいのマネー&権力がないと商売にはならない
2020/01/16(木) 18:57:30.74ID:dTAkFtwp
広告費かけないとダメなわけね
2020/01/16(木) 20:58:51.24ID:M/MvKdUR
広告費掛ける前に特許確認も金掛けてしようね
2020/01/16(木) 21:06:39.03ID:BM0ms5J9
広告出したらもっと愕然とするよ
2020/01/16(木) 21:36:23.03ID:RuNZdgVj
多分色んな人がアプリ公開してるはずなんだけど
google playで新着みても企業のアプリしか見当たらない
2020/01/16(木) 22:14:47.74ID:u5iRXM9D
>>575
GooglePlay的にはある程度大きいとこのアプリ推したほうがいいというのはある
複合バグでリソース使い切るアプリとかも一応公開可能だからな
安定やサポート寿命考えたらメジャーどころがいいよ

あとはまあ、ストアページに直接飛ぶリンクとかも作れるので、ストア外からの誘導を頑張るよりない
ストアで無目的に探す人は離脱率も高いから不安定だ
2020/01/17(金) 01:54:33.24ID:+mMkiTGI
超一流技術とアイデアがなければ何のアプリ出しても無視だね
ゴミと一緒か、もうゴミ以外かもな
ニッチな範囲で細々と使って貰うしかない

夢見ても無駄
2020/01/17(金) 19:21:08.87ID:ljT5UpwF
ニッチな分野でも、その界隈の人が金を払ってでも使いたいと思うようなア
プリだったら、(知れ渡るのに時間はかかるけど)それなりにユーザーは付くよ。

自分がこういうアプリが欲しいと思った物がまだ無かったから、それを自分
で作って、ついでにGoogleで有料公開したら、良い小遣稼ぎいになってる。
ttps://i.imgur.com/1ucK5QF.png

みんな、がんばれ!
2020/01/17(金) 22:58:02.40ID:C7dadIca
> 自分がこういうアプリが欲しいと思った物がまだ無かった
これトップモストね
2020/01/18(土) 08:55:16.73ID:1aPukr82
企業アプリ・個人アプリっていうジャングル作って星いよね
2020/01/18(土) 09:40:25.74ID:X0eX+SHp
ああ、そうだな
2020/01/19(日) 02:43:08.25ID:RPbguivT
>>571
最近ケチばっかり付けられて新しいアプリは看板すら立てさせてくれない
いろいろ厳しくなって来たな
583デフォルトの名無しさん
垢版 |
2020/01/19(日) 09:29:02.00ID:V4mZvLFf
あるアプルを改造したのですが
apkファイルから逆コンパイルなどいろいろしてソースコードを取り出し
そのソースコードの一部を改変してからまたapkファイルを作り直すことってできますか?
2020/01/19(日) 13:07:23.18ID:cDiEw16s
うわ、ゲームのチートでしょ
お子ちゃまがやりそうなことだ
2020/01/19(日) 14:12:27.90ID:8bW6N75b
その表現の内容はできない
2020/01/19(日) 14:48:41.68ID:En8i4EFL
もしあなたが法律に基づいたアプリの禁止事項を無視できる立場にいるのならファイルの取り出しができる
もしあなたが機械向けに構造ごと書き変えられているプログラムを理解することができるなら書き換えもできる
もしあなたがアプリ本体と通信先サーバの改竄チェックをすり抜ける手段を持っているのなら実行もできる

通常は1番目の条件を満たす部外者が存在しないのでおすすめできない
一般論としては自分でゼロから作ったほうが早い
人はそれをパクリアプリと呼ぶが
587デフォルトの名無しさん
垢版 |
2020/01/19(日) 16:52:28.86ID:V4mZvLFf
もしあなたが>>586の言ってることがさっぱり分からない

こういうときはどうするのがおすすめ?
2020/01/19(日) 17:40:05.74ID:hzIHtuXi
あきらめる
2020/01/19(日) 18:20:45.05ID:bA1fn50Z
来世に期待
2020/01/19(日) 19:55:06.18ID:zhHDP4rf
>>587
下2行くらいはわかるだろ
改造困難なもので自由に遊びたい場合は真似て自作しろ
そもそも自作もできん技量では解析もできんよ
自動車の改造と称してタイヤを細切れにするような愚は犯したくはあるまい
2020/01/19(日) 21:21:49.05ID:RtDKlYPH
>>583
classes.dex でググってみ。
まあほとんどのアプリは難読化してあるから、そのアプリを自分で作れるぐらいのスキルが無いと読み解くこともできないと思うが・・・
2020/01/21(火) 18:51:22.85ID:AqxWjuBm
機内モードにしてるとsetwifienabled効かねーのかよ原因探しちゃったわ
BTはオンオフできるのに
2020/01/21(火) 19:09:26.45ID:QDkdDnku
まあ、機内モードの存在を失念して
「わいふぁいがつながらなかったらわいふぁいおんにする」
「ねっとがつながらなかったらわいふぁいおんにする」
「1ぷんでだうんろーどできなかったらわいふぁいおんにする」
とかやるおまぬけさんが多かったので、ユーザーが手指定した機内モードを優越させる処理になってるのだと思う
2020/01/22(水) 02:12:24.25ID:IkI/cPFF
oreoまではできたんだけどな
WiFiのみで使う実機で機内モードオンにしとかないと
SIMないのに電波探そうとしてバッテリー消費するんだよな
595デフォルトの名無しさん
垢版 |
2020/01/26(日) 17:31:20.19ID:/6Mrh1Za
すいません相談に乗っていただきたく・・・スレ違いだったらごめんなさい
エミュでは正常に起動するんだけど実機デバッグするとDBのテーブルが無いって言われてすぐ落ちてしまいます
初起動時にアセットからSQLiteのDBコピーしてるんですが、adbでパス確認してもちゃんとあるんですよね
新規エミュでも正常に動くのになあ・・・心が折れそう・・・
ちなみにAPKはこれです
https://dotup.org/uploda/dotup.org2047779.zip
1台しか持ってないんですが俺の端末が悪いのかなあ
2020/01/26(日) 17:36:43.91ID:CrT1YzVQ
APK見てないけど実機にSDカードを忘れてるとか
597デフォルトの名無しさん
垢版 |
2020/01/26(日) 17:40:15.79ID:/6Mrh1Za
>>596
レスありがとうございます!
いえSDカードもちゃんと入ってるんですよ・・・
意図的に古いエミュ機作ってみたんですがちゃんと動くし何が何だかな状態です
2020/01/26(日) 22:13:16.70ID:jg4q41/y
>>595
ファイルコピーが完了する前に読みに行っている可能性があるかなと思った。
コピー処理はどのようにしてる?
2020/01/26(日) 22:34:51.55ID:dqbjtZTR
i7、メモリ16Gでもエミュレータ起動するとめちゃくちゃ重いな
デフォ設定のせい?
2020/01/26(日) 22:44:58.60ID:yi/g8S3L
>>599
重いとはなにかという話にはなる
アプリケーションはメモリだけで動くにあらず…
2020/01/26(日) 22:49:33.72ID:dqbjtZTR
>>600
Windows全体の動きが悪くなるんだよ
カクカクする
なんか変だなって思ってタスク見るとバックグラウンドのエミュが圧倒的にメモリ食い潰してる
2020/01/26(日) 22:52:08.67ID:yi/g8S3L
>>601
Windows Defenderじゃなかった今なんだっけの除外設定はきちんとしてるかい
オンボードGPUが悪さしてるとかかなあ
2020/01/26(日) 22:54:15.39ID:dqbjtZTR
>>602
3Dゲーム動くようなグラボだから問題ないはずだけど俺の環境が悪いっぽいな…
604デフォルトの名無しさん
垢版 |
2020/01/26(日) 23:10:30.93ID:/6Mrh1Za
>>598
レスありがとうございます!なるほどコピー完了前に読みに行ってるのかな・・・

メインクラスのonCreateで

DataBaseHelper mDbHelper;
mDbHelper = new DataBaseHelper(this);

として、DataBaseHelperの中の↓でデータをコピーしています

private void copyDataBaseFromAsset() throws IOException{

// asset 内のデータベースファイルにアクセス
InputStream mInput = mContext.getAssets().open(DB_NAME_ASSET);

// デフォルトのデータベースパスに作成した空のDB
OutputStream mOutput = new FileOutputStream(mDatabasePath);

// コピー
byte[] buffer = new byte[1024];
int size;
while ((size = mInput.read(buffer)) > 0) {
mOutput.write(buffer, 0, size);
}

// Close the streams
mOutput.flush();
mOutput.close();
mInput.close();
}
605デフォルトの名無しさん
垢版 |
2020/01/26(日) 23:38:32.72ID:/6Mrh1Za
>>598
デバッグで確認してみたんですが
while ((size = mInput.read(buffer)) > 0) {
mOutput.write(buffer, 0, size);
}
できちんとコピー終わってました・・・
adbで取り出してみたんですがコピーはできててテーブルも入ってるんですよねえ
もう!!!!!
2020/01/27(月) 00:17:48.28ID:HVOwXaqo
余計なリソースを読み込まないというshrinkResources trueですが
リリース版apkにすると必要なリソースも全然読み込みません
当然apkは使い物になりません
どうすればいいですか?
2020/01/27(月) 01:01:36.07ID:EUR0Ozz2
>>605
実機と同じバージョンのエミュでも動作する?
実機のapkを一度アンインストールしても同じ?
あとはExceptionの内容を書いてみるとなんかわかるかも。
608デフォルトの名無しさん
垢版 |
2020/01/27(月) 03:41:25.89ID:vX9tqMnJ
>>607
あああ!OSのバージョン違うエミュだったんですが揃えたところ見事に落ちてくれました・・・
これでちょっと前進できた気がします本当にありがとうありがとう(´;ω;`)
Exceptionの内容は該当箇所をかいつまむとこんな感じです

E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.aa_man, PID: 23010
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.aa_man/com.example.aa_man.MainActivity}: android.database.sqlite.SQLiteException: no such table: T_MAIN (code 1 SQLITE_ERROR): , while compiling: SELECT ID, TITLE FROM T_MAIN ORDER BY TITLE
609デフォルトの名無しさん
垢版 |
2020/01/27(月) 05:48:04.96ID:vX9tqMnJ
>>595です
解決しました!
https://stackoverflow.com/questions/50476782/android-p-sqlite-no-such-table-error-after-copying-database-from-assets
どうもAndroid 9特有の挙動らしいです
めちゃくちゃ助かりました、本当にありがとうございました!
2020/01/27(月) 13:18:07.00ID:hAvI3zXH
NDKを入れようとすると何度もfailedになるんだけども、これはバージョンが悪いのかな?
AndroidStudioは3.5.3

Move it away manually and try again..
"Install NDK (revision: 21.0.6113669)" complete.
"Install NDK (revision: 21.0.6113669)" failed.
Failed packages:
- NDK (ndk-bundle)
611610
垢版 |
2020/01/27(月) 14:15:49.32ID:hAvI3zXH
Android SDK Build-Toolsにチェックを入れてインストールしてから、
ASを再起動したら、NDKが入りました
ただ、確認の為にSDK Managerを立ち上げたらNDKが無くなってたのが不思議
NDK(Side by side)はあるけど、チェック無しです
2020/01/28(火) 09:26:37.29ID:GzvpU2Mp
Win10+AndroidStudio3.5.3でC++の部分をブレークポイントでデバッグしたいんだけども、
Debug 'App'(虫マーク)を押すと「Starting LLDB server: 」と出た後に「Operation not permitted」と出てしまいます
何かやり残していることはありますでしょうか?

やったこと
・プロジェクトを「Native C++」で新規作成しただけの「Hello from C++」が表示されるだけのサンプルで再現する
・SDKManagerで、NDKとLLDBとCmakeはチェック有り
・build.grandleのbuildTypesのdebugに「debuggable true」を追加、「minifyEnabled false」になってることを確認
・Helpの「Check for Updates」で全て最新になっていることを確認
・実機はAndroid9.0(「Waiting For Debugger」が表示され、アプリ単体で起動すれば「Hello from C++」が表示される)
2020/01/30(木) 11:56:24.46ID:d4grZ33q
android studioでflutter使ってるんですが
関数名を補完したときに()も一緒に挿入されるんですが、
)の右に,も一緒に挿入する方法はありませんか?
2020/01/30(木) 14:26:03.73ID:0A8TAndX
implementation 'com.android.support:appcompat-v7:28.1.1'
implementation 'androidx.appcompat:appcompat:1.1.0'

appcompatの前に「androidx」ってつくようになって、バージョン数字もAPIレベルとは違う数字になったけども、
これってバージョン数字はどう考えれば良いのでしょう?
x=10で、その派生って考えで合っていますか?
2020/01/30(木) 18:03:47.85ID:dHcm2Yca
これでも読んでくれば
https://developer.android.com/jetpack/androidx
2020/01/31(金) 05:46:10.51ID:m8ngfqTV
最近実機実行が一度手作業で元のやつをアンインストールしてからじゃないと
実行できなくなった
2020/01/31(金) 09:28:22.64ID:3arVFsY0
https://developer.android.com/studio/projects/add-native-code?hl=ja#new-project

これでプロジェクトを作ると、
「Unable to execute Clang-Tidy: Cannot create property〜」
って出るんだけども、何か間違ってますか?
ビルドしても「Hello from C++」っ表示されているから、動いてはいるんだろうけども
2020/02/01(土) 18:08:16.44ID:qUTCHDuq
NOXもAndroidStudioのエミュレーターにできるんですね
しかも設定不要で
便利になったもんだ
2020/02/03(月) 08:15:18.67ID:BU3hXphL
>>617
自分も新しいPCに最新版入れたら同じことが起きた
clang-tidy.exeを古いものに入れ替えたら出なくなった
2020/02/03(月) 09:51:12.35ID:WWV/7pyf
>>619
なるほど、とりあえずClang-Tidyを無効化して使ってみます
https://developer.android.com/studio/releases?hl=ja#clang-tidy-support
2020/02/03(月) 10:30:55.10ID:pOPFHPQ+
androidxに移行した
いや、最初失敗して移行するのに3日かかったよ
とほほ…
2020/02/04(火) 05:43:59.16ID:FQ9Eurik
Windows10画面左下の「検索するには、ここに入力します」にideaと入力して
IntelliJ IDEAを起動させようとしても"failed to load JVM DLL"というダイアログが出て
IDEAを起動できない時の対処法
https://teratail.com/questions/131945

解決策:ideaではなくidea64と入力すれば起動できるよ
2020/02/05(水) 15:23:32.04ID:J8cHiTIm
Android Studioが仮想マシンを認識しないことがあるんだけど、使用するポートに関する制限ってあるん?
emulater.exeでポート指定せず起動した仮想マシンがドロップダウンリストに出てこないorz
-ports 5575,5579と指定したら出てきたんだけど、そういうもん?
2020/02/06(木) 16:24:07.66ID:UYgbv9bH
大きなのっぽの ずるむけえ
おじいさんのちんぽ
100年いつも しごいてきた
ごじまんのちんぽさあ
2020/02/08(土) 19:15:00.91ID:Hqhuw4ea
メモリ16GBと32GBで快適度は違う?
8GBで起動すると重かった
2020/02/08(土) 19:18:13.16ID:bc/8lUBe
メモリ32でも起動は重い
2020/02/08(土) 19:35:13.65ID:Y3kn9rqT
初回以降で何もライブラリの更新タウンロードが起こらず、プロジェクトファイルがSSDに入ってるという大前提のもとでは、起動の速さはCPUに依存する
起動後のビルドまての動作はだいたいメモリに依存する
ビルドの速さはCPUとメモリに依存する

なお、プログラミングのいちばんの律速要素は人間である
ご自愛くだされい
2020/02/20(木) 09:44:35.91ID:44kj7ryp
JNI(C++)で double a = 0.1;
ってやると

a = 0.10000000000000001

ってなるのは、浮動小数点の仕様ですか?
Decimalみたいに0.1にする方法はありますか?
629デフォルトの名無しさん
垢版 |
2020/02/20(木) 10:49:49.46ID:sbHTvmgo
yes,浮動小数点数!
2020/02/20(木) 11:15:39.93ID:og2iBKE1
>>628
>Decimalみたいに0.1にする方法はありますか?
表示する時の問題だけなら、String.formatで桁数を制限して丸める。
本当に0.1=0.1000…の必要があるなら自分でDecimalクラスを作る
2020/02/20(木) 11:47:19.50ID:44kj7ryp
>>630
返事ありがとうございます。
内部で値の比較(==)に使いたいのですが、この辺りはC++の言語仕様なのですね。
Decimalクラスを作るか、OSSを探してみます。
ありがとうございました。
2020/02/20(木) 12:50:01.38ID:qJHTNx44
10進数だろうがなんだろうが
普通演算には誤差が付き物

0.1だけ正しければ良いのなら
固定小数点でも2進浮動小数点を10倍したものでも
10進浮動小数点でも何でも良い
2020/02/20(木) 15:48:05.57ID:bNuSClUR
今一番ナウい画像読み込みライブラリって何?
glideはもう古い?
2020/02/20(木) 17:14:53.10ID:uloqd7wr
>>631
小数点以下1桁目だけ比べたいならば、乱暴な方法だけど値を10倍してintにキャストしても
できると思うけど
2020/02/22(土) 12:21:06.61ID:SDwnmmil
4.0はどんな感じですか
2020/02/25(火) 14:45:36.89ID:jBJ3da0p
3.6にしたらなんかおかしいな
いろいろエラーでてまともにビルドできない、エラーの意味はわからない
今まで内部jdkに設定してたのも設定弄らないといけないみたい
2020/02/25(火) 16:31:15.96ID:R9B1DlaJ
3.0から3.1にした時も色々とエラーが出たな
しばらく3.5で様子を見た方がいいのか?
2020/02/26(水) 23:07:51.30ID:xzLE8LLo
VisualStudioのように、例外が発生した場所で強制的にデバッガを中断させる方法を教えてください
2020/02/27(木) 00:40:34.67ID:Y7XWxEB1
使ったこと無いけど、例外ブレークポイントというのがあるらしい
https://pleiades.io/help/idea/using-breakpoints.html
2020/02/27(木) 12:04:51.75ID:PAlqJhWb
https://developer.android.com/studio/projects/android-library

C++(JNI)をライブラリモジュールにしてAARを作ったんだけども、
AARファイルを呼び出せるのはC++になるのでしょうか?
AARをJavaのSystem.loadLibrary()で呼び出すことは出来ますか?
2020/02/27(木) 20:02:12.66ID:P6ge7LbZ
普通、そうやって使うよね?
642640
垢版 |
2020/02/28(金) 12:11:16.64ID:EnnwOLKH
新しいプロジェクト「cpptest」にsoファイルをコピーして実行したら下記エラーが出て
java.lang.UnsatisfiedLinkError: No implementation found for int[] sample.test.cpptest.MainActivity.intFromJNI(int[])

ライブラリ作成時のプロジェクト「cppmodule」の関数名にプロジェクト名が入っているので、
・Java_sample_test_cppmodule_MainActivity_intFromJNI(
の「cppmodule」を「cpptest」に書き換えてビルドしてからコピーしたら、System.loadLibrary()で呼び出すことは出来ました

ただ毎回新たなプロジェクト名に合わせて関数名を変えてビルドし直すのは面倒ですしヒューマンエラーの元ですし、
プロジェクト名に依存しない汎用的な関数名にすることは出来ないのでしょうか?
2020/02/28(金) 13:22:34.25ID:mGEHxTZy
>>642
>プロジェクト名に依存しない汎用的な関数名にすることは出来ないのでしょうか?
自分は、下記のように関数名の要変更部分をマクロにすることで
一ヶ所だけ変えれば良いようにしてる。

// 関数名の変換マクロ
#define JNIFN(x) Java_company_appname_classname_##x
 :
extern "C" JNIEXPORT jboolean JNICALL
JNIFN(InitSdCore)(JNIEnv *env, jclass /*type*/, jclass ctx,・・・
 :
extern "C" JNIEXPORT void JNICALL
JNIFN(CancelInit)(JNIEnv* /*env*/, jclass /*type*/, jboolean bSet・・・

実際に試してみてはないけど、CMakeLists.txt でコンパイラへのコマンドラ
インオプションを記述出来るから

target_compile_options(
 -DJNIFN(x) Java_company_appname_classname_##x
)

とか記述しとけば、Cソースはノータッチに出来るかも。
2020/02/28(金) 13:52:14.66ID:mGEHxTZy
>>642
これも試してないけど・・・

static public native void hogehoge(・・・
でnativeへの呼び出し口になってる部分を独立したクラスにして
これごと使いまわせば良いんじゃないかなあ。

異なるパッケージのjavaファイルを混ぜる方法はよくわからん・・・
645640
垢版 |
2020/02/28(金) 16:43:54.21ID:EnnwOLKH
>>643-644
回答ありがとうございます、最初のですと一箇所を変えて毎回soファイルをコンパイルする必要があるのですね
native呼び出し部分をパッケージごとクラスにすれば、soファイルは使いまわしが出来るかもしれませんね
https://qiita.com/ymmtyuhei/items/7109579210af34ec697c#androidmk
モジュールでJNIが使えないのが謎ですが、試してみます
2020/02/28(金) 17:47:42.20ID:mGEHxTZy
>>645
>最初のですと一箇所を変えて毎回soファイルをコンパイル
#define JNIFN(x) Java_company_appname_cla・・・の部分だけをxxx.hで
分離しとけばアプリ毎に一回作るだけだし、
最終的にAPKファイルにするにはAS上でビルドする必要があるので、
>soファイルは使いまわし
のほうが返って手間がかかりそうな・・・

個人的意見としては、ネイティブコードの担当者と各アプリの担当者が皆
違うとか、頻繁にC++部に修正が入るとかでないなら、AARにするメリット
はあまり無いと思う。

あと、
https://qiita.com/ymmtyuhei/items/7109579210af34ec697c#androidmk
AS2.xとAS3.xではNDK回りは大きく変わっているので、ネットで情報を探す
時は古い情報は役に立たないので要注意。
647640
垢版 |
2020/02/28(金) 21:12:13.69ID:EnnwOLKH
>>646
丁寧にありがとうございます
ネイティブコードは見られたく無いので、soやaarで渡したいかなと

NDK回りはAS3.xでかなり変わったのですか
検索する時は1年以内にしているのですが、
怪しい翻訳サイトが数年前のSOを翻訳して載せてるのが結構ひっかかりますね
2020/02/28(金) 21:19:38.61ID:deAMBNJM
コロナで大変なときに3.6とかやってられない
生き延びたら3.6対応するよ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況